[后台及服務器][Ubuntu18.04.1] nginx+php+MySQL環境搭建


說在前面

今天在騰訊雲的CVM服務器搭建了一下環境【主機:標准型S2,Unbuntu18.04的LST版本】

采用了nginx服務器(Nginx 靜態處理性能比 Apache高3倍以上,不過apache仍然是目前的主流,有很多豐富的特性)[百度Nginx與Apache區別]

PHP7.2 + MySQL5.7


 

 常用命令

查看系統版本

cat /etc/issue

更新apt-get的源(定期使用該命令,確保自己的新下載的軟件包是最新版本)

apt-get update

安裝軟件

apt-get install 軟件名

編輯文件內容 (輸入以下命令訪問要修改的文件后,按(字母i)進入編輯模式,退出編輯模式,退出編輯后輸入后回車保存,強制保存)

vim 路徑

 文件內查詢

/要查詢的內容

 

正文

1 安裝MySQL

apt-get -y install mysql-server mysql-client

中間會詢問兩次root的密碼,輸入即可。沒密碼/新版本可能不會詢問。(其中 -y 是表示安裝過程中的問題自動回答yes,即默認安裝。也可以不寫-y,直接apt-get install 軟件名)

數據庫安全配置

mysql_secure_installation

沒有密碼則在輸入命令后按回車,然后設置密碼。接着如下:

此處會依次用英文詢問(紫色為建議填寫)

1 是否重置密碼,Set root password? [Y/n] 

   y重置,n不重置  (記得密碼不必重置)

2 刪除匿名用戶,Remove anonymous users? [Y/n] 

   y刪除,n不刪除  (禁止匿名用戶訪問)

3 關閉遠程登陸,Disallow root login remotely? [Y/n] 

   y關閉,n不關閉  (允許后可以使用遠程軟件管理)

刪除測試數據庫,Remove test database and access to it? [Y/n] 

   y刪除,n不刪除 (不必刪除)

重新加載權限表,Reload privilege tables now? [Y/n] 

   y重載,n不重載 (刷新)

提示  All done!  則成功安裝配置完MySQL。


 

 

安裝PHP7

這里我用的是PHP7.2,當然有的是7.0或者以后更多新版本,要根據版本不同可能路徑不同,但是大體配置思路是一樣的。

安裝前可以先用以下命令

查看最新版本是什么,如下[可能有更簡單辦法,但這樣也看得出]

apt-cache search package | php

如下可以看到源提供的包中大部分是7.2的軟件包

所以我們安裝php7.2-fpm(為什么是要裝帶fpm的安裝包,因為-fpm的安裝包使用了FastCGI可以提升CGI性能,CGI可以規范數據傳輸)【根據自己的情況安不同的包,如php7.0就安裝7.0,不要也寫個7.2就裝不了】

安裝php7.2-fpm的命令如下

apt-get -y install php7.2-fpm

success安裝完成


 

 

3 安裝Nginx

如果安裝了Apache,要先卸載Apache或者能夠更換Apache的端口?

卸載命令如下(新系統/沒安裝不必卸載)

service apache2 stop
update-rc.d -f apache2 remove
apt-get remove apache2

安裝Nginx命令如下

apt-get -y install nginx

完成后,啟動Nginx命令如下

service nginx start

輸入IP地址或域名在瀏覽器訪問,顯示如下頁面則成功安裝Nginx


配置Nginx

三個軟件都裝好了,這一步我們要進行配置,配置后nginx服務器才可以顯示PHP頁面。

打開配置文件nginx.conf 命令如下

vim /etc/nginx/nginx.conf

找到nginx.conf配置文件里的keepalive_timeout變量把它的值改成2,如下(如何修改文件內容,見本文開頭常用命令vim)

 

接下來打開配置文件sites-available/default 命令如下

vim /etc/nginx/sites-available/default

打開后,按照如下部分修改(主要就是把前面"#"注釋標志刪掉,讓PHP生效。注意函數的大括號“}”不要忘了取消注釋)

兩個文件都修改完后,重新加載一下nginx 命令如下

service nginx reload

 

5  配置PHP

這里要注意:php的配置文件php.ini,路徑會隨PHP版本而不同,所以首先查找php.ini文件位置 命令如下

php -i | grep php.ini

命令的意思是:php -i 即顯示php的詳細信息,然后在其中匹配php.ini的信息,如上圖找到了路徑是 /etc/php/7.2/cli/php.ini,接下來就是打開這個文件

 

打開php.ini文件 命令如下

vim /etc/php/7.2/cli/php.ini

 然后輸入\cgi.fix_pathinfo 查詢,找到后回車,按 進入編輯模式,修改文件內容cgi.fix_pathinfo = 0如下圖,記得前面的分號  (注釋!)要刪掉。

 

修改完成后重新加載PHP服務命令如下(還是一樣,根據自己版本號確定服務名。不知道自己服務名的輸入 service --status-all 查看)

service php7.2-fpm reload

檢測配置是否成功 我們要創建一個php文件在服務器根目錄下,再用IP地址或域名訪問

創建文件命令如下

vim /var/www/html/info.php

然后同樣的按 進入編輯模式輸入文件內容如下

<?php

phpinfo();

?>

保存修改,然后在瀏覽器訪問 IP地址/info.php 出現如下頁面即成功

 

補充

FileZila遠程管理文件(上傳自己寫好的代碼到服務器上跑)

默認用戶Ubuntu不具有創建目錄功能

只有系統超級用戶root(sudo su進入)才有創建目錄功能,為了服務器安全,不給默認普通用戶這個更改目錄等權限。

所以使用root用戶遠程登錄管理系統文件

1) 使用用戶名ubuntu登錄

2) 修改root密碼,密碼輸入不可見,需要再次確認密碼。命令如下

sudo passwd root

3) 打開ssh配置。命令如下

sudo vi /etc/ssh/sshd_config

4) 命令行輸入i進行編輯

修改文件中的PermitRootLogin no為PermitRootLogin yes。

Esc退出編輯模式,輸入:wq , 然后回車保存修改。

5) 重啟ssh服務。命令如下

sudo service ssh restart

6) 在FileZilla站點管理中新建一個站點。

主機填寫你服務器的外網IP地址端口22協議選擇sftp用戶名root密碼就填上面第(2)步改的密碼

連接成功,列出目錄了,接下來就是看你nginx服務器指定目錄在哪就把代碼傳到哪,指定目錄也就是剛剛上面創建info.php文件那里(var/www/html)

【注意:root用戶進入后默認在root目錄,ubuntu用戶進入后在home/ubuntu目錄。記得點回上級目錄才能看到var文件夾,然后依次進入var/www/html。】

 

Navicat遠程管理MySQL(這個和我之前寫的阿里雲那篇類似)

首先登陸mysql 命令如下

mysql -u root -p

輸入密碼(初始為0)登錄后前綴變成mysql>,然后我們進入默認數據庫 命令如下

mysql> use mysql
接下來顯示user表關鍵信息 命令如下
mysql> select user,host,plugin,authentication_string from user

顯示如下圖,root用戶的host我已經把它由原來的localhost改為“%”了,

首先看我圈的紅圈,如果你的還不是%,就輸入如下SQL語句更改host值

mysql> update user set host="%" where user="root"

然后為了安全,我們要給root加個密碼(新安裝的密碼默認是空),看最后一列,我這個版本的mysql密碼字段的名字是authentication_string(可以輸入show tables看出來)ChaosBlog原創

mysql> update user set authentication_string="這里換成新密碼" where user="root"

要注意的是,MySQL要求密碼必須是一串字符串並包含:大小寫字母,符號,數字。不然會報錯【正確示范:例如:Abc#123】

然后看下我圈的藍色圈,plugin列代表密碼是否是native_password,不是的話密碼可能是明文顯示的,而且用Navicat等軟件連接的時候會報錯(1251錯誤)連不上。

所以我們要用另一種命令修改密碼,如下

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '這里換成新密碼';

加了密碼以后,習慣性刷新權限...命令如下

mysql> flush privileges

然后我們就可以輸入exit命令回車退出MySQL了。

最后,

檢查是否綁定了IP,命令如下(訪問配置文件mysqld.cnf)

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 

把該配置文件中的 bind-address =127.0.0.1前面加上  注釋掉

完成后基本都可以用Navicat登錄數據庫,若還不能則檢查3306端口是否開啟。

方法1:安裝firewalld強行開啟;

sudo apt-get install firewalld

firewall-cmd --add-port=3306/tcp

方法2:騰訊雲安全組里面開啟全部端口,或者自己設置安全策略,控制端口號的進出。

 

若使用Apache中不能解析php,要安裝如下

sudo apt-get install libapache2-mod-php 

若頁面只顯示:目前無法處理該請求。HTTP ERROR 500

首先都要修改php.ini中如下,

display_errors = On

error_reporting = E_ALL | E_STRICT

若是Apache中首先找到httpd.conf文件(ubuntu系統,apache2配置文件在/etc/apache2/apache2.conf中)

vim /etc/apache2/apache2.conf

如果你的不是在這個目錄下,可以通過此命令查詢:

find / -name apache2.conf

最后按I進入編輯模式,在該文件最下面添加如下規則,

php_flag display_errors on

php_value error_reporting 2039

 

若是nginx也是修改配置文件

 

記得,操作完用重啟大法更新一下,每個service都restart一下。如service mysql restart  、service php7.2 restart 、 service nginx restart ......

大功告成:)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM