1. 程式人生 > >搭建lnmp教程

搭建lnmp教程

數據庫密碼 doc sysconf 相關 ins php7 安裝php7 安裝mysql rip

LNMP指的是一個基於CentOS/Debian 上安裝Nginx、PHP、MySQL、php。可以在獨立主機上輕松的安裝LNMP生產環境。

1 安裝nginx

如果是一臺新的服務器可直接安裝(若以前安裝過apacha和php需要卸載 命令 #yum remove http* php* )

安裝命令

yum -y install nginx

啟動命令

/etc/init.d/nginx start

剛剛買了服務器,測試發現無法啟動報錯 ,解決辦法將default.conf 後綴改掉,這是一個虛擬主機的配置,,後面我們會詳細介紹。

cd /etc/nginx/conf.d
mv default.conf default.conf.back

設置系統啟動自動開啟

chkconfig --level 345 nginx on

安裝nginx之後,我們要搭建一個虛擬主機,方便外網訪問。一臺雲服務器可以創建多個虛擬主機。運行多個網站。我們可以為不同的域名綁定不同的目錄,訪問這個域名的時候,會打開對應目錄裏面的東西。先進入到 nginx 配置文件目錄:

cd /etc/nginx/conf.d

新建一個以.conf結尾的配置文件名字最好以你的配置的域名為名稱例如 www.baidu.com.conf,下面是一個虛擬主機配置,一般情況下只需要改動域名和代碼位置,域名需要在域名管理平臺解析,

代碼本人習慣放在根目錄/home/ 下

server {
    listen          
80; server_name www.baidu.com; root /home/baidu; charset utf-8; #access_log /var/log/nginx/log/host.access.log main; location / { index index.html index.htm index.php; try_files $uri $uri/ /index.php?$query_string; } #error_page 404 /404
.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { # root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; client_max_body_size 5000m; } # deny access to .htaccess files, if Apache‘s document root # concurs with nginxs one # #location ~ /\.ht { # deny all; #} }

重啟 nginx 或者重新加載 nginx 可以讓配置文件生效。

service nginx reload
或者
service nginx restart

到根目錄/home下,創建代碼目錄,目錄名稱必須跟虛擬主機配置項目錄名稱一致。

cd /home
mkdir baidu
vim baidu/1.html

隨便寫點什麽保存。本人懶推薦****************;現在,打開瀏覽器,輸入你為虛擬主機設置的域名,看看是否能打開你指定的目錄裏的東西。

2 安裝php

根據項目需求安裝php版本。php7.0性能高。

1.檢查當前安裝的PHP包

yum list installed | grep php

如果有安裝的PHP包,先刪除他們

yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64

2.配置yum源,根據服務器系統版本選擇

Centos 5.X

rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm

?CentOs 6.x

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

?CentOs 7.X

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
?rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

3.運行安裝php yum install

安裝php5.5

yum install php55w.x86_64 php55w-cli.x86_64 php55w-common.x86_64 php55w-gd.x86_64 php55w-ldap.x86_64 php55w-mbstring.x86_64 php55w-mcrypt.x86_64 php55w-mysql.x86_64 php55w-pdo.x86_64?

安裝php5.6

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64

安裝php7.0

yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64

4.安裝PHP FPM?

yum install php55w-fpm 
yum install php56w-fpm 
yum install php70w-fpm

如果你想在系統啟動時自動運行php-fpm,輸入下列命令:

# chkconfig --level 345 php-fpm on

第一次啟動php-fpm,輸入下列命令:

# /etc/init.d/php-fpm restart

現在,我們已經安裝了 php-fpm,並修改了 nginx 的配置文件讓它可以去執行 php,下面,我們得去測試一下,可以使用 php 的 phpinfo(); 函數,方法是在你的虛擬主機根目錄下面,創建一個 php 文件,命名為 phpinfo.php,然後在這個文件裏輸入:

<?php phpinfo(); ?>

保存並退出,php默認的使用者是apache,需要改為nginx

vim /etc/php-fpm.d/www.conf

將39行 41行的 apache改為nginx

38 ; RPM: apache Choosed to be able to access some dir as httpd
39 user = apache
40 ; RPM: Keep a group allowed to write in log dir.
41 group = apache
改為
38 ; RPM: apache Choosed to be able to access some dir as httpd
39 user = nginx
40 ; RPM: Keep a group allowed to write in log dir.
41 group = nginx

重啟nginx

service nginx restart

瀏覽器打開剛剛的文件,顯示php信息

3 安裝mysql

安裝 mysql
mysql 可以管理網站用到的數據庫,WordPress 和 Drupal 也都支持 mysql 數據庫。所以我們的 Web 運行環境裏,需要安裝一個 mysql 。直接使用 yum 命令去安裝 mysql :

yum install mysql-server


安裝完成後,使用 service 命令啟動 mysql 服務:

service mysqld start


然後我們需要簡單配置一下 mysql ,默認安裝以後 mysql 的 root 用戶是沒有密碼的,對於生產環境來說,這肯定是不行的,另外還有一些安全相關的設置,可以使用下面這行命令去配置一下,它是一個向導,問你一些問題,你要給出答案,比如是否要設置 root 用戶的密碼, 密碼是什麽等等。

mysql_secure_installation

Enter current password for root (enter for none):
解釋:輸入當前 root 用戶密碼,默認為空,直接回車。
Set root password? [Y/n] y
解釋:要設置 root 密碼嗎?輸入 y 表示願意。
Remove anonymous users? [Y/n] y
解釋:要移除掉匿名用戶嗎?輸入 y 表示願意。
Disallow root login remotely? [Y/n] y
解釋:不想讓 root 遠程登陸嗎?輸入 y 表示願意。
Remove test database and access to it? [Y/n] y
解釋:要去掉 test 數據庫嗎?輸入 y 表示願意。
Reload privilege tables now? [Y/n] y
解釋:想要重新加載權限嗎?輸入 y 表示願意。

CentOS下開啟mysql遠程連接, 當服務器沒有運行php、沒裝phpmyadmin的時候,遠程管理mysql就顯得有必要了。

遠程管理數據庫方式有兩種


1 普通鏈接通過3306端口鏈接
mysql -u root -p
在mysql控制臺執行:

grant all privileges on *.* to root@% identified by 123456 with grant option;

# root是用戶名,%代表任意主機,‘root‘指定的登錄密碼(這個和本地的root密碼可以設置不同的,互不影響)

flush privileges;# 重載系統權限
exit;

*****允許3306端口****

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT


# 查看規則是否生效

iptables -L -n # 或者: service iptables status

# 此時生產環境是不安全的,遠程管理之後應該關閉端口,刪除之前添加的規則
iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
PS,上面iptables添加/刪除規則都是臨時的,如果需要重啟後也生效,需要保存修改:

service iptables save # 或者: /etc/init.d/iptables save

另外,
vi /etc/sysconfig/iptables # 加上下面這行規則也是可以的
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT


2 通過ssh等通道連接

我使用的是navicae工具

技術分享圖片

技術分享圖片

在這裏填上服務器遠程鏈接信息

技術分享圖片

在這裏填上服務器上的數據庫密碼就可以了。

服務器遠程連接工具推薦xshell,sftp,寫代碼推薦phpstorm;大神們喜歡用vi直接在服務器上寫代碼,但是我還是喜歡這些工具, 工具是人類進步的階梯嘛!

搭建lnmp教程