一、環境准備
1)下載php環境包,下載地址為:https://www.php.net/downloads.php
2)安裝docker,這個主要的作用就是用來安裝mysql.你也可以不需要安裝這個東西,直接在linux中安裝mysql
3) 安裝nginx,主要作用就是用來分發php的地址分發管理
二、開始安裝
這一步中,我主要教大家如何安裝php環境,因為剩下的兩個都是小問題。最后也就是教大家如何配置nginx的nginx配置,用來訪問到我們的php項目。
1.安裝php環境
1)安裝php環境(我這里主要下載的php7.2版本)
2)把下載的包傳到linux文件夾里面,並進行解壓,假如沒有相關的命令提示,請自行安裝。
tar -xvzf php-7.0.5.tar.gz cd php-7.0.53)
3)接下來進行參數配置,配置前如果沒有libxml2和libxml2-devel會報錯,所以應該更新libxml2並安裝libxml2-devel,使用在線安裝:
yum -y install libxml2 yum -y install libxml2-devel
注:補充,因為不同的操作系統環境,系統安裝開發環境包的完整程度也不相同,所以建議安裝操作系統的時候做必要選擇,也可以統一執行一遍所有的命令,將沒有安裝的組件安裝好,如果已經安裝了可能會進行升級,版本完全一致則不會進行任何操作,命令除上面2個之外,匯總如下:
yum -y install openssl yum -y install openssl-devel yum -y install curl yum -y install curl-devel yum -y install libjpeg yum -y install libjpeg-devel yum -y install libpng yum -y install libpng-devel yum -y install freetype yum -y install freetype-devel yum -y install pcre yum -y install pcre-devel yum -y install libxslt yum -y install libxslt-devel yum -y install bzip2 yum -y install bzip2-devel
4)完成上面的安裝后執行配置
./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir
5)執行編譯/安裝
make
make install
注:這里等等吧,因為需要時間,大概10分鍾。
6)php的默認安裝位置上面已經指定為/usr/local/php,接下來配置相應的文件
cp php.ini-development /usr/local/php/lib/php.ini cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf cp sapi/fpm/php-fpm /usr/local/bin
7)設置php.ini
vim /usr/local/php/lib/php.ini
注:默認被注釋並且值為1,根據官方文檔的說明,這里為了當文件不存在時,阻止Nginx將請求發送到后端的PHP-FPM模塊,從而避免惡意腳本注入的攻擊,所以此項應該去掉注釋並設置為0,設置完畢保存並退出
8)此時首先應該創建web用戶
groupadd www-data useradd -g www-data www-data
注:名字可以根據自己的喜歡確定
9)然后網上一些教程說讓修改php-fpm.conf添加以上創建的用戶和組,這時候使用 vim /usr/local/etc/php-fpm.conf 打開文件后找不到官方所提示的位置
注:如果此時隨便在一個位置添加,那么接下來啟動php-fpm的時候,會報目錄找不到的錯誤,所以不要在php-fpm.conf中添加用戶和組,這個時候翻到php-fpm.conf最后一行會發現如下內容(如果編譯時添加--prefix選項以下位置會自動補全,默認是下面是空的,要注意)
這里引入了php-fpm.d目錄下所有的conf配置文件,但是NONE需要修改為我們的實際目錄:/usr/local
這里我自己把自己坑了一把,所以最后我直接進入到php的sbin中進行啟動和停止。
10)默認情況下etc/php-fpm.d/下有一個名為www.conf.defalut的配置用戶的文件,執行下面命令復制一個新文件並且打開
cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf vim /usr/local/etc/php-fpm.d/www.conf
默認user和group的設置為nobody,將其改為www-data
11)修改完成之后,保存並退出,然后執行以下命令啟動php-fpm服務
/usr/local/bin/php-fpm
12)啟動完畢之后,php-fpm服務默認使用9000端口,使用 netstat -tln | grep 9000 可以查看端口使用情況
9000端口正常使用,說明php-fpm服務啟動成功
2.安裝nginx,在這里默認大家都會安裝,不會安裝自己的度娘下啊。
1)配置nginx
vim /usr/local/nginx/nginx.conf
注:這里附上我的nginx配置,進攻參考
user data-www data-www;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name 你的域名地址(www.baidu.com);
index index.php index.html;
error_log /usr/local/nginx/logs/項目名.error.log;
access_log /usr/local/nginx/logs/項目名.access.log;
root /usr/local/nginx/html/項目名;
#nginx header
underscores_in_headers on;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;fastcgi_param RUN_ENV development;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
}
}
}
2)修改完這些保存並退出,然后重啟nginx
/usr/local/nginx/nginx -s stop /usr/local/nginx/nginx
3)測試,
假如你的php項目中沒有相關的東西,那么你在你的新項目名中新建一個index.php文件,並訪問你配置的域名地址www.baidu.com,並出現下面的頁面,說明配置成功
附上:在執行項目時可能你會出現出現很多的問題,不要慌,記得看日志哦。