Linux下PHP開發環境搭建(Apache2.4+PHP7.1+MySQL5.7)
AMP是當下非常熱門的Web開發環境。很多開發者在搭建LAMP的過程中會遇到各種各樣的問題,想到這些頭都快爆炸了,今天特意抽出時間將PHP開發環境的搭建過程記錄下來,以便供大家做個參考。如果大家發現什麼問題,還希望大家指正。
一、獲取安裝包
- PHP下載地址:http://cn.php.net/distributions/php-7.1.10.tar.gz
- Apache下載地址:http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.28.tar.gz
- MySQL下載地址: https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
二、安裝Apache
1. 依賴包安裝
1) 安裝編譯器gcc、gcc-c++
yum install -y gcc gcc-c++
2) 安裝依賴包expat-devel、zlib-devel、openssl-devel
yum install -y expat-devel zlib-devel openssl-devel
2) 安裝依賴包apr
wget http://mirror.bit.edu.cn/apache//apr/apr-1.6.2.tar.gz tar zxvf apr-1.6.2.tar.gz cd apr-1.6.2 ./configure --prefix=/usr/local/apr make && make install
3) 安裝依賴包apr-util
wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.6.0.tar.gz tar zxvf apr-util-1.6.0.tar.gz cd apr-util-1.6.0 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make && make install
4) 安裝依賴包pcre
wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz tar zxvf pcre-8.41.tar.gz cd pcre-8.41 ./configure --prefix=/usr/local/pcre make && make install
注意: 將apr、apr-util安裝包拷貝到Apache安裝包的srclib目錄中
名稱分別命名為apr、apr-util,不要後面的版本號
2. 安裝過程
1) 解壓Apache安裝包
tar zxvf httpd-2.4.28.tar.gz
2) 編譯、安裝
cd httpd-2.4.28 ./configure --prefix=/usr/local/server/apache \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr-util \ --with-pcre=/usr/local/pcre \ --enable-so \ --enable-ssl \ --enable-deflate \ --enable-rewrite \ --enable-headers \ --enable-expires \ --disable-cgid\ --disable-cgi make && make install
3. 修改配置檔案httpd.conf
vim /usr/local/server/apache/conf/httpd.conf
去掉ServerName前面的 #
並將ServerName後面的網址改為localhost:80
4. 將httpd加入系統服務並設定開機自啟
1) 將httpd加入系統服務
cp /usr/local/server/apache/bin/apachectl /etc/init.d/httpd
2) 修改/etc/init.d/httpd,在第3行加入以下內容
# chkconfig: 345 85 15 # description: Activates/Deactivates Apache Web Server
注意: 程式碼中的 # 不可以去掉
3) 設定系統服務開機自啟
systemctl enable httpd
4) 啟動Apache
service httpd start
三、安裝MySQL
1. 安裝前準備
1) 解壓安裝包
tar zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.19-linux-glibc2.12-x86_64 /usr/local/server/mysql
2) 建立使用者和使用者組並分配相應的許可權
groupadd mysql useradd -r -g mysql mysql -s /sbin/nologin
3)安裝依賴
yum -y install numactl.x86_64
2. mysql的初始化並做基本配置
1) 初始化mysql
cd /usr/local/server/mysql bin/mysqld \ --initialize \ --user=mysql \ --basedir=/usr/local/server/mysql \ --datadir=/usr/local/server/mysql/data \
2) 配置mysql
vim my.cnf # 建立配置檔案
本示例僅保證mysql可以正常執行,更多配置請參考官方文件說明
[mysqld] skip-grant-tables basedir = /usr/local/server/mysql datadir = /usr/local/server/mysql/data socket = /usr/local/server/mysql/data/mysql.sock log-error = /usr/local/server/mysql/log/error.log port = 3306 [mysql_safe] pid-file = /var/run/mysql/mysqld.pid log-error = /usr/local/server/mysql/log/error.log [client] port = 3306 socket = /usr/local/server/mysql/data/mysql.sock
將配置檔案軟連結到 /etc/ 目錄
ln -s /usr/local/server/mysql/my.cnf /etc/my.cnf
注意: 如果建立軟連結時提示檔案存在可刪除/etc/my.cnf後再建立軟連結
3)建立資料庫儲存資訊所需目錄和檔案
mkdir /usr/local/server/mysql/data mkdir /usr/local/server/mysql/log mkdir /var/run/mysql touch /usr/local/server/mysql/log/error.log
4)設定目錄所有者
chown -R mysql:mysql /usr/local/server/mysql/ chown -R mysql:mysql /var/run/mysql/
3. 設定環境變數和開機自啟
1) 設定環境變數
編輯profile檔案
vim /etc/profile
新增下列資訊到profile尾部
export PATH=$PATH:/usr/local/server/mysql/bin
使環境變數立即生效
source /etc/profile
2) 設定開機自啟
cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on
4. 防火牆設定
CentOS預設開啟了 firewall 防火牆,下面我們使用 firewall 開啟3306l埠
1) 開啟之前我們先查詢下3306埠是否開啟
firewall-cmd --query-port=3306/tcp
2)如果沒有開啟則開啟 firewall 防火牆
systemctl start firewalld.service
3) 我們可以選擇臨時開啟或者永久開啟3306埠
firewall-cmd --add-port=3306/tcp # 臨時開啟3306埠 firewall-cmd --permanent --zone=public --add-port=3306/tcp # 永久開啟3306埠
4) 重啟firewall
firewall-cmd --reload
5. 啟動mysql並設定root使用者密碼
1) 啟動mysql
/usr/local/server/mysql/support-files/mysql.server start # 啟動MySQL /usr/local/server/mysql/bin/mysql -uroot -p # 這裡直接回車,無須輸入密碼
2) 設定root使用者密碼
use mysql; update user set authentication_string=password('root') where user='root'; exit;
注意1: 修改密碼成功後登出配置檔案中的skip-grant-tables
重啟mysql後使用root使用者重新登陸,然後執行以下程式碼
set password=password('root');
注意2: 第二次執行重置密碼是系統要求,否則不可以操作資料庫
6. 遠端訪問
1) 給予任何主機訪問mysql的許可權
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;
2) 使許可權修改生效
FLUSH PRIVILEGES;
四、安裝PHP
1. 安裝步驟
1) 安裝依賴包libxml-devel
yum -y install libxml2-devel
2) 解壓PHP安裝包
tar zxvf php-7.1.10.tar.gz
3) 編譯安裝
cd php-7.1.10 ./configure --prefix=/usr/local/server/php \ --with-apxs2=/usr/local/server/apache/bin/apxs \ --with-config-file-path=/usr/local/server/php \ --with-pdo-mysql make && make install
2. 配置php.ini
1) 將配置檔案拷貝到PHP安裝目錄
cp php.ini-* /usr/local/server/php/
2) 生成php.ini
cp php.ini-development /usr/local/server/php/php.ini
3. 修改httpd.conf
載入PHP模組,如httpd.conf中有下列程式碼則直接去掉前面#即可,沒有則加入
LoadModule php7_module modules/libphp7.so
在底部加入以下程式碼使得Apache可以解析php檔案
<IfModule mod_php7.c> AddType application/x-httpd-php .php </IfModule>
找到如下程式碼,在index.html後面加入index.php
<IfModule dir_module> DirectoryIndex index.html </IfModule>
重啟Apache
service httpd restart
4. 測試PHP是否成功安裝
建立/usr/local/server/apache/htdocs/index.php
vim /usr/local/server/apache/htdocs/index.php
在index.php中編寫以下程式碼
<?php phpinfo(); ?>
如果出現以下頁面則安裝成功