rpm --import' target='_blank'>http://nginx.org/packages/keys/nginx_signing.key[/code] 安裝 Nginx RPM 包:
rpm -Uvhhttp://nginx.org/packages/ href="http://www.luoxiao123.cn/tag/centos" target=_blank>centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
到目前為止,YUM 源已經安裝好了 ,接著進行下一步的配置。
MySQL YUM 源默認是啟用的 MySQL-5.6,PHP YUM 源默認都沒有啟用,Nginx YUM 源默認是啟用的 Nginx-1.8。
定位到 /etc/yum.repos.d/
,對 後綴為 .repo
的文件進行編輯,修改 enabled
為1
以啟用。
啟用 PHP-7.0 :
1、修改 /etc/yum.repos.d/remi.repo,將 [remi] 和 [remi-test] 下面的 enabled=0 改為 enabled=1;
2、修改 /etc/yum.repos.d/remi-php70.repo,將 [remi-php70] 下面的 enabled=0 改為 enabled=1;
sed -i "/remi\/mirror/{n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi.repo
sed -i "/test\/mirror/{n;n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi.repo
sed -i "/php70\/mirror/{n;s/enabled=0/enabled=1/g}" /etc/yum.repos.d/remi-php70.repo
到這一步 YUM 配置就算完成了,清除並生成 YUM 緩存使之生效:
yum clean all
yum makecache
安裝 MySQL + PHP + Nginx + phpMyAdmin
YUM 源已經配置好了,現在直接安裝 MySQL + PHP + Nginx + phpMyAdmin:
yum install -y mysql-community-server nginx php php-bcmath php-fpm php-gd php-json php-mbstring php-mcrypt php-mysqlnd php-opcache php-pdo php-pdo_dblib php-pgsql php-recode php-snmp php-soap php-xml php-pecl-zip phpMyAdmin
注:上面安裝的 php-*
可以根據實際使用情況選擇安裝
安裝完成後,進行下一步的環境配置,MySQL 配置文件在 /etc/my.cnf.d/
,PHP 配置文件在 /etc/php-fpm.d/
,Nginx 配置文件在 /etc/nginx/
,phpMyAdmin的配置文件在/etc/phpMyAdmin/
。
配置 MySQL
MySQL 配置文件保持默認,運行一次安全配置即可。
啟動 MySQL:
systemctl start mysqld.service
安全配置 MySQL:
設置 root 密碼、刪除匿名用戶、禁止 root 遠程登錄、刪除 test 數據庫、重新加載權限表,一路
Y
下去
mysql_secure_installation
配置 PHP
PHP 默認配置文件使用的是監聽 9000 端口進行通信,針對小型單一、沒有做負債均衡的服務器,可以使用 unix sock 方式通信。
使用 unix sock 方式需要修改 PHP 配置文件:
#更換監聽方式
listen = /dev/shm/php-fpm-default.sock
#監聽隊列最大長度為不限
listen.backlog = -1
#指定監聽用戶和用戶組(需存在)
listen.owner = www
listen.group = www
啟動 PHP-FPM:
systemctl start php-fpm.service
配置 Nginx
讓服務器默認訪問顯示為 400 提示頁。
#新建名為 nginx-default.conf 的配置文件
touch /etc/nginx/conf.d/nginx-default.conf
#編輯配置文件
vi /etc/nginx/conf.d/nginx-default.conf
將以下信息輸入到 nginx-default.conf
server
{
listen 80 default;
return 400;
}
按下 Esc
,輸入 :x
保存並退出。
防火牆放行 HTTP 端口訪問:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
啟動 Nginx:
systemctl start nginx.service
這時,在浏覽器地址欄輸入當前服務器 IP 就會看到一個 400 的提示頁面了。
進階!綁定域名+站點目錄+保存日志+運行 PHP的配置文件:
server
{
listen 80; #監聽80端口
server_name default.com www.default.com; #綁定域名 default.com 和 www.default.com
index index.html index.htm index.php; #設置首頁文件,越前優先級越高
charset utf-8; #設置網頁編碼
root /home/wwwroot/default; #設置站點根目錄
#運行 PHP
location ~ .*\.php$
{
fastcgi_pass 127.0.0.1:9000 #默認使用9000端口和PHP通信
#fastcgi_pass unix:/dev/shm/php-fpm-default.sock; #使用 unix sock 和PHP通信
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /home/wwwroot/default; #PHP 文檔根目錄
fastcgi_param SCRIPT_FILENAME /home/wwwroot/default$fastcgi_script_name; #PHP 腳本目錄
include fastcgi_params;
try_files $uri = 404;
}
#設置文件過期時間
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp3|wma)$
{
expires 30d;
}
#設置文件過期時間
location ~ .*\.(js|css)$
{
expires 12h;
}
#設置文件訪問權限
location ~* /templates(/.*)\.(bak|html|htm|ini|old|php|tpl)$ {
allow 127.0.0.1;
deny all;
}
#設置文件訪問權限
location ~* \.(ftpquota|htaccess|htpasswd|asp|aspx|jsp|asa|mdb)?$ {
deny all;
}
#保存日志
access_log /var/log/nginx/default-access.log main;
error_log /var/log/nginx/default-error.log crit;
}
配置 phpMyAdmin
# 編輯配置文件
vi etc/phpMyAdmin/config.inc.php
修改以下內容:
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '/var/lib/mysql/mysql.sock';
$cfg['Servers'][$i]['connect_type'] = 'socket';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['UploadDir'] = '/tmp';
$cfg['SaveDir'] = '/tmp';
如果Nginx使用的是上面的進階代碼,那麼把 phpMyAdmin
的目錄 復制到 /home/wwwroot/default/phpMyAdmin/
下面,就可通過http://default.com/phpMyAdmin
訪問了:
#復制 phpMyAdmin目錄
cp -a /usr/share/phpMyAdmin/home/wwwroot/default/
#替換連接形式為目錄
rm -rf /home/wwwroot/default/phpMyAdmin/doc/html
cp -a /usr/share/doc/phpMyAdmin-<span class="pl-k">*</span>/html /home/wwwroot/default/phpMyAdmin/doc/
一鍵腳本
上面已經講解了如何配置和安裝,但是不能每次都這麼一步一步來吧?為了節省時間,麥蔥寫了一個一鍵安裝管理腳本,可選擇安裝 Nginx 1.8/1.9
、MySQL 5.5/5.6/5.7
和
PHP 5.5/5.6/7.0
。
安裝
yum install -y unzip
wgethttps://github.com/maicong/LNMP/archive/master.zip
unzip master.zip
cd LNMP-master
bash lnmp.sh
# 輸出到指定文件
# bash lnmp.sh 2>&1 | tee lnmp.log
管理站點
service vhost (start,stop,list,add,edit,del,exit) <domain> <server_name> <index_name> <rewrite_file> <host_subdirectory>
start
啟動
stop
停止
list
列出
add
添加
edit
編輯
del
刪除
exit
什麼都不做
<domain>: 配置名稱,例如:domain
<server_name>: 域名列表,例如:domain.com,www.domain.com
<index_name>: 首頁文件,例如:index.html,index.htm,index.php
<rewrite_file>: 偽靜態規則文件,保存在 /etc/nginx/rewrite/
例如:nomal.conf
<host_subdirectory>: 是否支持子目錄綁定,on
或者 off