CentOS7.3 安裝配置 Nginx、MariaDB、PHP
配置 nginx 安裝引數並安裝
配置
以下引數也可以在後期通過配置 conf 檔案進行配置
基本配置如下
./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --user=nginx --group=nginx
更多模組一起安裝配置如下,有些模組需要系統安裝相應元件,根據提示進行安裝,比如 gd 元件,需要通過 yum install gd-devel
安裝對應系統元件。
./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --user=nginx --group=nginx --with-select_module --with-poll_module --with-file-aio --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_xslt_module=dynamic --with-http_image_filter_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module --http-log-path=/var/log/nginx/access.log --with-mail --with-mail_ssl_module --with-cpu-opt=CPU --with-pcre --with-pcre-jit --with-zlib-asm=CPU --with-debug
出現如下內容說明配置成功,記錄了你的 Nginx 相關配置資訊。
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/etc/nginx"
nginx configuration file: "/etc/nginx/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "
"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
編譯
make && make install
提示如下成功:
cp objs/ngx_http_xslt_filter_module.so `/usr/local/nginx/modules/ngx_http_xslt_filter_module.so`
make[1]: 離開目錄“/root/nginx-1.11.10”
檢查是否安裝成功
執行如下命令啟動,並用 ps 命令檢查啟動情況
/usr/sbin/nginx -c /etc/nginx/nginx.conf
ps -ef | grep nginx
新增 nginx 到系統服務
vim /usr/lib/systemd/system/nginx.service
增加如下內容(結合安裝時的配置檔案進行修改),其中 特殊的環境變數 $MAINPID 可用於表示主程式的PID
。有關 systemd.service 的配置,可以參加下面兩篇文章:
systemd 入門教程:命令篇
Systemd 入門教程:實戰篇
systemd.service 中文手冊
[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/sbin/nginx -c /etc/nginx/nginx.conf -t
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
:wq 儲存退出
停止原先啟動的 Nginx 程式,
/usr/sbin/nginx -s stop
ps -ef|grep nginx
systemctl daemon-reload
systemctl start nginx.service
服務啟動後,開啟瀏覽器,輸入您網站的地址,檢視歡迎頁面是否正常顯示。
不知道 ip 的,可以通過如下命令找到本機 ip 地址
ip addr show eth0 | grep inet | awk `{ print $2; }` | sed `s//.*$//`
命令列測試網頁
curl http://yourip
安裝 MySQL (MariaDB)
sudo yum install mariadb-server mariadb
sudo systemctl start mariadb
增加 mysql 安全性
sudo mysql_secure_installation
設定為系統啟動載入
sudo systemctl enable mariadb
安裝 php7
建立 php7 的 yum 源
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
rpm -Uvh epel-release-latest-7.noarch.rpm
後面會用到 yum-config-manager,若無此指令,可先用 yum search 查詢在那個套件再安裝,我們通過 search 找到為 yum-utils
yum search yum-config-manager
yum install yum-utils
開啟remi 、remi-php71 源
yum-config-manager --enable remi
yum-config-manager --enable remi-php71
如果安裝的是 php5.6 則修改上句如下:
yum-config-manager --enable remi-php56
用 yum repolist all
檢視所有 repo,檢查是否配置成功。
安裝 php php-fpm php-mysql 及其他 php 模組
如果原先已安裝 php,可以用 yum update php*
更新,或者用 yum remove php
刪除後再重新安裝。
yum install php php-fpm php-mysql php-bcmath php-gd php-mbstring -y
以下元件也可以挑需要的安裝。
yum install php-fpm php-mysql php-bcmath php-cli php-common php-gd php-mbstring php-pdo php-pear php-pecl-msgpack php-process php-xml gd-last php-json php-pecl-memcached php-pecl-zip -y
可以用 yum list installed | grep php
檢視 php 套件安裝情況。
用 php -v
檢視當前版本。
配置 php-fpm
找到你的 php-fpm.sock 檔案,將該路徑配置到 php-fpm 的 conf 檔案中
find / -name www.conf
vi /etc/php-fpm.d/www.conf
修改 www.conf 如下
listen = /run/php-fpm/php-fpm.sock
php-fpm 的 user/group 要和 webserver 的所有權一致,如我在 CentOS7 下,用 nginx 使用者 執行 nginx 服務,則修改 php-fpm 的 www.conf 配置如下:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
user = nginx
group = nginx
重啟 php-fpm 服務,並加入到系統自啟動中:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
如果重啟後,php 服務還是不成功,可能還需執行 chown nginx:nginx /run/php-fpm/php-fpm.sock
後再重啟。
配置 Nginx 使其能執行 php 頁面
vi /etc/nginx/nginx.conf
主要有如下步驟:
-
設定 root 根目錄
-
新增 index.php 為預設目錄首頁請求
-
修改 server_name ,新增域名或 IP
-
定義 404 等錯誤頁面的規則
-
配置 PHP 處理模組,主要調整
location ~ .php$ {
部分,尤其注意fastcgi_pass unix:
指向的 php-fpm.sock 路徑是否正確; -
儲存後重啟 nginx 服務
我的配置檔案大致如下:
server {
listen 80;
server_name server_domain_name_or_IP;
# note that these lines are originally from the "location /" block
root /www;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /www;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
在根目錄新增一個 phpinfo 的 php 檔案,開啟瀏覽器進行測試是否正常顯示。
成功後刪除測試頁面。
安裝 phpmyadmin
去官網下載解壓即可:
wget https://files.phpmyadmin.net/phpMyAdmin/4.6.6/phpMyAdmin-4.6.6-all-languages.zip
unzip phpMyAdmin-4.6.6-all-languages.zip -d /www
cp config.sample.inc.php config.inc.php
如果瀏覽器開啟出現如下錯誤:
session_start(): open(SESSION_FILE, O_RDWR) failed: Permission de
則修改報錯資訊檔案的所有權,如下
chown nginx:nginx /var/lib/php/session