php 5.6+ nginx 1.10+ mysql 5.5+
LNMP是Linux、Nginx、MySQL(MariaDB)和PHP的縮寫,這個組合是最多見的WEB服務器的運行環境之一。本文將帶領你們在CentOS 7操做系統上搭建一套LNMP環境。php
本教程適用於CentOS 7.x版本。
準備工做html
更新 yum 源,自帶的源沒有 PHP5.6 :node
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
安裝 epel:mysql
yum install epel-release
而後更新下系統:nginx
yum update
準備工做完成,開始安裝!web
CentOS系統模板中配置了內網源,下載速度較快,推薦使用yum安裝Nginx:sql
sudo yum install nginx
按照提示,輸入yes後開始安裝。安裝完畢後,Nginx的配置文件在/etc/nginx目錄下。使用如下命令啓動Nginx:數據庫
sudo systemctl start nginx
檢查系統中firewalld防火牆服務是否開啓,若是已開啓,咱們須要修改防火牆配置,開啓Nginx外網端口訪問。apache
sudo systemctl status firewalld
若是顯示active (running),則須要調整防火牆規則的配置。瀏覽器
修改/etc/firewalld/zones/public.xml文件,在zone一節中增長:
<zone> ... <service name="nginx"/> <zone>
保存後從新加載firewalld服務:
sudo systemctl reload firewalld
您能夠經過瀏覽器訪問 http://<外網IP地址> 來肯定Nginx是否已經啓動。
最後將Nginx設置爲開機啓動:
sudo systemctl enable nginx.service
這麼Nginx就安裝成功了!
MariaDB是MySQL的一個分支,主要由開源社區進行維護和升級,而MySQL被Oracle收購之後,發展較慢。在CentOS 7的軟件倉庫中,將MySQL更替爲了MariaDB。
咱們可使用yum直接安裝MariaDB:
sudo yum install mariadb-server
安裝完成以後,執行如下命令重啓MariaDB服務:
sudo systemctl start mariadb
MariaDB默認root密碼爲空,咱們須要設置一下,執行腳本:
sudo /usr/bin/mysql_secure_installation
這個腳本會通過一些列的交互問答來進行MariaDB的安全設置。
首先提示輸入當前的root密碼:
完成後你會看到Success!的提示,MariaDB的安全設置已經完成。咱們可使用如下命令登陸MariaDB:
mysql -uroot -p
按提示輸入root密碼,就會進入MariaDB的交互界面,說明已經安裝成功。
最後咱們將MariaDB設置爲開機啓動。
sudo systemctl enable mariadb
咱們能夠直接使用yum安裝PHP:
sudo yum install php56w-cli php56w-fpm php56w-mysql php56w-mysqli php56w php56w-opcache php56w-gd php56w-intl php56w-mbstring php56w-exif php56w-mcrypt php56w-openssl //把該安裝的一次性裝到位
安裝完成後咱們將php-fpm啓動:
sudo systemctl start php-fpm
將php-fpm設置爲開機啓動:
sudo systemctl enable php-fpm
我給你們提供一個範本做爲參考:
nginx.conf
裏面我會詳細的給予中文註釋
vi /etc/nginx/nginx.conf //編輯nginx.conf的命令
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; #錯誤日誌記錄的位置 pid /run/nginx.pid; #nginx.pid爲記錄nginx主進程pid文件;切勿修改、移動 # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; #引入/usr/share/nginx/modules/ 目錄下的全部以.conf結尾的文件 events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; #這句很重要,引入全部etc/nginx/conf.d/目錄下的.conf文件 #***etc/nginx/conf.d/目錄存放的就是分站點的文件(下面會給出實例代碼)*** server { #因爲咱們的nginx須要配置多站點,因此在此就須要註釋一些東西 listen 80 default_server; listen [::]:80 default_server; #保留監聽的端口 # server_name _; # root /usr/share/nginx/php; # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # location / { # } # error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } # location ~ \.php$ { # root /usr/share/php; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # include fastcgi_params; # } } # Settings for a TLS enabled server. # # server { # listen 443 ssl http2 default_server; # listen [::]:443 ssl http2 default_server; # server_name _; # root /usr/share/nginx/html; # # ssl_certificate "/etc/pki/nginx/server.crt"; # ssl_certificate_key "/etc/pki/nginx/private/server.key"; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # location / { # } # # error_page 404 /404.html; # location = /40x.html { # } # # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } # } } #注意:此份nginx.conf能夠直接複製了去使用!~好用了就給博主打個賞錢!謝謝!
配置完nginx以後咱們該幹啥、?固然是重啓nginx唄
service nginx start #啓動nginx service nginx stop #中止nginx service nginx restart #重啓nginx sudo systemctl reload nginx #或者執行這條
重啓完畢,繼續打開 http://<外網IP地址> 來肯定Nginx是否已經啓動
此時,服務器啓動的是nginx和apache
並且php-fpm默認發送到apache
因此我們還得繼續修改一下php-fpm
vi /etc/php-fpm.d/www.conf #編輯php-fpm配置文件
修改user和group (源代碼爲:user = apache group = apache)
user = nginx group = nginx
修改完了以後,仍是老樣子,重啓php-fpm服務
service php-fpm start #啓動php-fpm service php-fpm stop #中止php-fpm service php-fpm restart #重啓php-fpm
添加站點這我先給你們一個截圖,以幫助你們迅速的瞭解是怎麼回事
你們應該看的很清楚了,猜均可以猜到,博主這一共配置了三個站點,這三個站點是怎麼被nginx引入的呢?
我給你們貼出nginx的配置文件的裏面應該有這麼一句(注意圖中的紅框,上面的是地址)
include /etc/nginx/conf.d/*.conf; #這句很重要,引入全部etc/nginx/conf.d/目錄下的.conf文件 #***etc/nginx/conf.d/目錄存放的就是分站點的文件(下面會給出實例代碼)***
好的,你們應該能準確理解了,若是仍是理解不了的話只能缺你回去喝點三鹿了!
看代碼的時候請注意看裏面的路徑,固然我也仍是會給必定的中文註釋
#這個文件是上面的qopmall.com.conf server { server_name qopmall.com www.qopmall.com;#這裏就是你要綁定的域名了,空格分開 location / { root /usr/share/php/weixin; #這裏是你站點存放的文件夾名稱(也就是說,你當前這個站點的文件所有都丟在這個路徑的weixin文件夾裏面) index index.php index.html index.htm; #這裏照抄便可 } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /usr/share/php/weixin; #這裏的配置等同於上面的那個root配置 fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/php/weixin/$fastcgi_script_name; #這裏的配置也是和上面的root配置同樣 include fastcgi_params; } }
代碼很是簡單,我沒註釋到的不用修改就行;
上面的路徑,好比/usr/share/php/weixin 這就是你站點的根目錄,我給你們截圖參考:
【補充:很重要】
部分童鞋發現按照教程操做最後沒法打開80端口,這是阿里雲的ECS服務器剛夠買完,默認關閉了80端口。這個請移步阿里雲控制檯自行操做,如需步驟,請自行百度!
因爲博主是個菜雞,也就順帶給你們分享一下經驗,老司機請繞道行駛! 若是你以爲博主寫得幫到了你,或者對你來講還算有用了,麻煩點個贊,土豪直接打賞就行,我不反對!see you!~