購(gòu)買阿里云ECS服務(wù)器
購(gòu)買一臺(tái)阿里云ECS服務(wù)器,可使用我的推薦碼xmm4oh
,系統(tǒng)安裝設(shè)置為centOS 7.2 64位
為系統(tǒng)添加用戶
并不推薦使用root
用戶來管理linux
,所以拿到一臺(tái)linux
的第一件事就是創(chuàng)建一個(gè)供自己使用的用戶
useradd cky
添加cky用戶
passwd cky
設(shè)置密碼
visudo
設(shè)置新用戶權(quán)限
在 root ALL=(ALL) ALL
這一行下面兔仰,再加入一行cky ALL=(ALL) ALL
查詢系統(tǒng)環(huán)境
rpm -q centos-release
查看CentOS 版本號(hào)
sudo yum -y install ntpdate
安裝時(shí)間同步工具
ntpdate times.aliyun.com
和阿里云時(shí)間同步
centOS 7 默認(rèn)開啟防火墻 屯援,可能導(dǎo)致遠(yuǎn)程不能訪問服務(wù)器石蔗,可以關(guān)閉它
systemctl stop firewalld.service
停止firewall
systemctl disable firewalld.service
禁止firewall開機(jī)啟動(dòng)
yum install iptables-services
改用iptables防火墻
配置用戶免密碼登錄
如果是windows娃属,使用xshell
就好
如果是mac
ubuntu
等環(huán)境則需要配置下
在客戶端用戶目錄執(zhí)行ssh-keygen -t rsa
生成密鑰
客戶端執(zhí)行scp .ssh/id_rsa.pub cky@192.168.1.181:~/
將密鑰發(fā)給服務(wù)端
服務(wù)端執(zhí)行cat id_rsa.pub >> .ssh/authorized_keys
將客戶端密鑰添加到登錄可登錄密鑰列表里
服務(wù)端執(zhí)行chmod 600 .ssh/authorized_keys
改變下密鑰列表權(quán)限
安裝工作狀態(tài)保存軟件
sudo yum install tmux
安裝代碼管理工具git
sudo yum install git
安裝shell 編輯器
sudo yum install zsh
sudo yum install vim
安裝oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
安裝nginx
yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx
systemctl start nginx.service
安裝mysql
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum install mysql-community-server
yum install mysql-community-devel
systemctl start mysqld.service
service mysqld status
出現(xiàn)PID說明啟動(dòng)成功
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
mysql> quit;
安裝PHP
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
安裝編譯環(huán)境
yum -y install libjpeg-devel libpng-devel libtiff-devel fontconfig-devel freetype-devel libXpm-devel gettext-devel openssl openssl-devel libtool-ltdl-devel gcc gcc-c++ ncurses ncurses-devel
在php-7.0.9
里面使用我的庫git@git.coding.net:caokaiyan/code.git
里的配置
sudo bash phpinstall
配置
sudo make
編譯
sudo make install
安裝
vim /etc/profile
末尾加上
PATH=$PATH:/usr/local/php/bin
export PATH
source /etc/profile
立即生效
php -v
測(cè)試下
在php-7.0.9
里執(zhí)行下面代碼,配置好php
$ cp php.ini-production /etc/php.ini
$ cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf$ cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
$ cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
$ chmod +x /etc/init.d/php-fpm
/etc/init.d/php-fpm start
開啟php-fpm
開啟虛擬域名
=====================
vim /etc/nginx/conf.d/jizipu.com.conf
server {
listen 80;
server_name test.jizipu.com;
index index.php index.html index.htm;
root /home/cky/workspace/test;
location / {
root /home/cky/workspace/test;
try_files $uri $uri/ /index.php?$args;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
nginx php-fpm 權(quán)限問題
個(gè)人喜歡將項(xiàng)目放在~/workspace
下面 , ~/
的權(quán)限為 drwx------
,除了root和本用戶,其它用戶根本無法訪問該目錄下的任何東西
nginx 是以 nginx 用戶運(yùn)行的(可使用root運(yùn)行)
php-fpm 也是使用nginx 或者php-fpm用戶運(yùn)行的(php-fpm不能使用root運(yùn)行)
假設(shè)lnmp的架構(gòu)都配置正確了,那么會(huì)有下面幾種情況
- php-fpm 和 nginx 都使用 nginx 運(yùn)行
則根本訪問不到~/
里的項(xiàng)目 - nginx 使用 root , php-fpm 使用nginx或者php-fpm
~/
目錄下面的項(xiàng)目里的靜態(tài)文件可以被訪問蛉顽,但轉(zhuǎn)發(fā)給php-fpm訪問的*.php
就會(huì)報(bào)錯(cuò)file not found
了
解決方案 :
- 將nginx設(shè)置為root用戶運(yùn)行 , php-fpm 設(shè)置為本用戶運(yùn)行
- 將本用戶目錄的權(quán)限修改為
drwxr-xr-x
, 開放寫和執(zhí)行權(quán)限給外部用戶,這樣可能帶來隱私泄露問題,
可以通過建立個(gè)~/own
文件夾 ,權(quán)限設(shè)置為drwx------
,將所有隱私文件放在里面