遠程控制你的服務(wù)器
遠程控制 Linux 類型的系統(tǒng)的服務(wù)器神得,比如 CentOS 系統(tǒng)的服務(wù)器厘惦,一般不像 Windows 服務(wù)器那樣,使用圖形界面的遠程控制哩簿。我們需要使用命令行工具宵蕉,遠程連接到服務(wù)器,然后使用命令去控制服務(wù)器节榜。Windows 用戶可以使用Putty羡玛,Mac 用戶可以使用系統(tǒng)自帶的終端工具。然后用 ssh 命令宗苍,連接到你的服務(wù)器稼稿。像這樣:
sshroot@218.244.147.196
@ 左邊的 root 是連接時使用的用戶的名字薄榛,@ 右邊的數(shù)字是你的服務(wù)器的 IP 地址。這行命令的意思就是让歼,使用 root 用戶敞恋,登錄到?218.244.147.196 這臺服務(wù)器上∧庇遥回車以后硬猫,會提示你輸入 root 用戶的密碼(這個密碼阿里云會發(fā)送到你手機上)。
添加新用戶并分配 Root 權(quán)限
為了安全改执,我們可以單獨創(chuàng)建一個平時操作服務(wù)器的用戶啸蜜,并且給這個用戶分配可以使用 Root 的權(quán)限,也就是如果需要 Root 權(quán)限天梧,可以在命令的前面加上 sudo 獲取到 Root 用戶的權(quán)限盔性。
添加新用戶
比如添加一個名字是 wanghao 的用戶,可以這樣:
adduserwanghao
設(shè)置密碼
為用戶設(shè)置密碼:
passwdwanghao
分配 Root 權(quán)限
讓我們新創(chuàng)建的用戶擁有 Root 用戶的權(quán)限呢岗,執(zhí)行:
gpasswd-awanghao wheel
把 wanghao 這個用戶名換成你自己的用戶名冕香。
用新用戶登錄服務(wù)器
sshwanghao@218.244.147.196
倉庫
為了可以使用 CentOS 系統(tǒng)的包管理工具去安裝更多的東西,我們需要單獨安裝一些額外的軟件倉庫后豫。
EPEL
sudo yuminstallepel-release-y
IUS
sudoyum install https://centos7.iuscommunity.org/ius-release.rpm -y
IUS 倉庫里面有我們需要的一些新的軟件包悉尾,比如 PHP 7。注意我們安裝的是為 CentOS ?7 這個系統(tǒng)準備的 IUS 倉庫挫酿,如果你的系統(tǒng)是 CentOS 6构眯,你需要到 IUS 網(wǎng)站上去查找適合的倉庫的下載地址。
安裝 NGINX
NGINX 這個軟件包已經(jīng)包裝在 EPEL 倉庫里了早龟,之前我們已經(jīng)安裝了這個倉庫惫霸,所以可以直接使用包管理工具去安裝 NGINX。
sudoyum install nginx -y
啟動
sudosystemctl start nginx
開啟自啟動
sudo systemctlenablenginx
服務(wù)啟動以后葱弟,你就可以在瀏覽器上使用服務(wù)器的 IP 地址壹店,或者指向這個地址的域名訪問服務(wù)器指定的目錄了。你會看到類似下面的這些文字芝加。
Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. For online documentation and support please refer to nginx.org. Commercial support is available at nginx.com. Thank you for using nginx.
配置 nginx 虛擬主機
安裝完 nginx 以后硅卢,第一件想到的事應(yīng)該就是去創(chuàng)建虛擬主機,虛擬主機允許我們在同一臺服務(wù)器上運行多個網(wǎng)站藏杖,我們可以為不同的域名綁定不同的目錄将塑,訪問這個域名的時候,會打開對應(yīng)目錄里面的東西蝌麸。之前介紹過為Apache 服務(wù)器創(chuàng)建虛擬主機点寥,下面來看一下為 nginx 配置虛擬主機。先進入到 nginx 配置文件目錄:
cd/etc/nginx/conf.d
創(chuàng)建一個新的配置文件来吩,比如我要為 nginx.ninghao.net 這個主機名創(chuàng)建一個虛擬主機开财,可以這樣:
vimnginx.ninghao.net.conf
把下面的配置代碼放到這個配置文件里:
server{listen80;server_namenginx.ninghao.net;root/home/www/nginx.ninghao.net;indexindex.php index.html;location/ {try_files$uri$uri/ /index.php?$query_string;? }location~ \.php${fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;includefastcgi.conf;? }}
上面這個配置文件支持一些的 PHP 應(yīng)用汉柒,比如 WordPress误褪,Drupal责鳍,Laravel。第一個 location 區(qū)塊可以讓 PHP 應(yīng)用支持地址的重寫功能兽间,第二個 Location 設(shè)置了讓虛擬主機可以去處理 PHP 的請求历葛。注意這里用了 include 命令,包含進來一個 fastcgi.conf 文件嘀略,你要確定這個文件存在恤溶。
你也可能會找到?fastcgi_params 這個文件,如果沒有 fastcgi.conf 就把?fastcgi_params 這個文件包含進來帜羊,并且在處理 php 的那個 location 區(qū)塊里再添加一條配置:
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
server_name就是主機名咒程,也就是跟這個虛擬主機綁定在一塊兒的域名,我事先把nginx.ninghao.net指向了服務(wù)器讼育,這個虛擬主機就是為它準備的帐姻,所以,server_name后面的東西就是nginx.ninghao.net奶段。緊接著server_name下面可以是一個root饥瓷,就是這個虛擬主機的根目錄,也就是網(wǎng)站所在的目錄痹籍。比如我們要把nginx.ninghao.net這個網(wǎng)站的文件放在/home/www/nginx.ninghao.net下面呢铆,那么這個root就是這個路徑。
然后去掉 location / 里面的 root 這行代碼蹲缠。再在 index 后面加上一種索引文件名棺克,也就是默認打開的文件,這里要加上一個 index.php 线定,這樣訪問 nginx.ninghao.net 就可以直接打開 root 目錄下面的 index.php 了娜谊。稍后我們再去安裝 php 。
保存一下渔肩,按esc因俐,輸入:wp(保存并退出)。現(xiàn)在虛擬主機應(yīng)該就可以使用了周偎。主機的域名是nginx.ninghao.net抹剩,訪問它的時候,打開的是/home/www/nginx.ninghao.net這個目錄里面的東西蓉坎,你可以在這個目錄下放點東西澳眷。
重啟 nginx 或者重新加載 nginx 可以讓配置文件生效。
sudosystemctl reload nginx
現(xiàn)在蛉艾,打開瀏覽器钳踊,輸入你為虛擬主機設(shè)置的域名衷敌,看看是否能打開你指定的目錄里的東西。
PHP
要讓 nginx 能夠執(zhí)行 php 文件拓瞪,需要去安裝一下php-fpm缴罗,我要安裝的是比較新的 PHP 7 ,這個軟件包可以在 IUS 倉庫里找到祭埂,所以你需要先安裝 IUS 倉庫面氓。
sudoyum install php70u-fpm -y
啟動
sudosystemctl start php-fpm
開機自啟動
sudo systemctlenablephp-fpm
安裝 PHP 擴展
為了可以正常運行一般的 PHP 應(yīng)用,你需要再安裝一些其它的 PHP 擴展蛆橡,通常你在安裝 PHP 應(yīng)用舌界,比如 WordPress,Drupal泰演,Laravel 的時候呻拌,都會提示你缺少的 PHP 擴展。下面是一些常用的 PHP 擴展:
sudo yuminstallphp70u-gd ?php70u-mysqlnd?php70u-pdo?php70u-mcrypt?php70u-mbstring php70u-jsonphp70u-opcache php70u-xml-y
重新加載 PHP-FPM
sudosystemctl reload php-fpm
測試是否可以執(zhí)行 php
現(xiàn)在睦焕,我們已經(jīng)安裝了 php-fpm藐握,并修改了 nginx 的配置文件讓它可以去執(zhí)行 php,下面复亏,我們得去測試一下趾娃,可以使用 php 的phpinfo();函數(shù),方法是在你的虛擬主機根目錄下面缔御,創(chuàng)建一個 php 文件抬闷,命名為phpinfo.php,然后在這個文件里輸入:
保存文件并退出耕突。在瀏覽器里打開剛才創(chuàng)建的這個 php 文件笤成。我這里應(yīng)該是http://nginx.ninghao.net/phpinfo.php。打開以后眷茁,你應(yīng)該能看到像下面這樣的界面炕泳,如果能,說明 nginx 已經(jīng)可以執(zhí)行 php 了上祈。
安裝 MySQL?/ MariaDB
MySQL 與 MariaDB 是相互兼容的培遵,現(xiàn)在社區(qū)推薦使用 MariaDB,所以我們可以去安裝一下 MariaDB 登刺,用它代替 MySQL 籽腕。
sudo yuminstallmariadb101u-server-y
如果出現(xiàn)沖突的提示,是因為系統(tǒng)本身自帶 MariaDB纸俭,我們需要先刪除掉系統(tǒng)本身帶的皇耗,才能正常安裝比較新的。一般可以這樣來刪除:
sudoyum remove mariadb-libs -y
啟動
sudosystemctl start mariadb
開機自啟動
sudo systemctlenablemariadb
安全配置
然后我們需要簡單配置一下 mysql 揍很,默認安裝以后 mysql 的 root 用戶是沒有密碼的郎楼,對于生產(chǎn)環(huán)境來說万伤,這肯定是不行的,另外還有一些安全相關(guān)的設(shè)置呜袁,可以使用下面這行命令去配置一下敌买,它是一個向?qū)В瑔柲阋恍﹩栴}傅寡,你要給出答案放妈,比如是否要設(shè)置 root 用戶的密碼, 密碼是什么等等荐操。
mysql_secure_installation
Enter current password for root (enter for none):
解釋:輸入當(dāng)前 root 用戶密碼,默認為空珍策,直接回車托启。
Set root password? [Y/n] ?y
解釋:要設(shè)置 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 數(shù)據(jù)庫嗎?輸入 y 表示愿意铺韧。
Reload privilege tables now? [Y/n] ?y
解釋:想要重新加載權(quán)限嗎多矮?輸入 y 表示愿意。
目錄與文件的權(quán)限問題
網(wǎng)站上面有些目錄或文件需要有寫入權(quán)限哈打,這樣你得為這些目錄和文件分配合適的權(quán)限塔逃,一般可以把它們的擁有者設(shè)置成 php-fpm 使用的用戶,查看一下誰在運行 php-fpm 這個服務(wù):
sudops aux|grep php
修改所使用的用戶料仗,php-fpm 的配置文件是:/etc/php-fpm.conf湾盗,還有在/etc/php-fpm.d/*這個目錄里的所有文件都是 php-fpm 的配置文件。默認這個目錄里有一個www.conf立轧,你可以編輯這個文件來修改 php-fpm 所使用的用戶名稱格粪。使用vim命令:
vim/etc/php-fpm.d/www.conf
打開文件以后你可以搜索下關(guān)鍵詞user,輸入:/user氛改,會搜索到結(jié)果帐萎,按小n可以繼續(xù)向下查找,按大N可以向上查找平窘。直到你看到:
user= php-fpm
這個 php-fpm 就是運行 PHP-FPM 的用戶的名字吓肋,你看到的也可能是其它的名字,這不重要瑰艘。你只要知道這個用戶是誰是鬼,在哪里可以修改這個用戶就行了肤舞。在遇到目錄寫入權(quán)限的問題,比如不能正常上傳網(wǎng)站的文件均蜜,你可以把保存上傳文件的那個目錄的擁有者修改成運行 PHP-FPM 的用戶就可以了李剖。
修改目錄的擁有者可以使用這樣的命名:
sudochown -R 用戶名 目錄
這樣就會把指定的目錄的擁有者修改成指定的用戶了。也就是如果你把目錄的擁有者修改成運行 PHP-FPM 的那個用戶囤耳,那么在網(wǎng)站上再去上傳文件就不會有權(quán)限的問題了篙顺,因為目錄的擁有者一般都會擁有可以寫入的權(quán)限。