近期學習小程序埠戳,需要搭建一個小型測試服務(wù)器馆衔,所以在阿里云開了一個1G內(nèi)存的ubuntu服務(wù)器瘟判,準備用LNMP,在此記錄下搭建過程角溃。
1.啟用密鑰登錄
阿里云默認使用用戶名密碼登錄ubuntu系統(tǒng)拷获。為了以后ssh連接方便,需要在阿里云控制臺創(chuàng)建登錄密鑰對(控制臺--》云服務(wù)器ECS--》菜單欄--》網(wǎng)絡(luò)與安全)减细,并下載秘鑰文件到本地匆瓜,進行無密碼ssh登錄,命令如下:ssh -i xxx.pem root@xxx.xxx.xxx.xxx。
2.安裝MySQL數(shù)據(jù)庫
sudo apt-get update
sudo apt-get install mysql-server mysql-client
//登錄mysql 進行驗證
mysql –u root –p"xxxxx"
修改MySQL配置文件/etc/mysql/my.cnf 驮吱,使MySQL支持中文:
//修改之前先備份
sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.back
sudo vi /etc/mysql/my.cnf
在配置文件的節(jié)點[client]下茧妒,加入
default-character-set = utf8
在[mysqld]下,加入
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci
然后重新加載文件左冬,并重啟MySQL服務(wù):
sudo service mysql reload
sudo service mysql restart
登錄MySQL桐筏,查看系統(tǒng)字符集,看到字符集是utf-8:
mysql -u root -p"xxx"
show variables like '%character%'
/* 查詢結(jié)果如下:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
*/
3.安裝nginx
sudo apt-get install nginx
sudo service nginx start
安裝完成后再瀏覽器中使用ip地址測試:http://xxx.xxx.xxx.xxx 拇砰。
4.安裝php
sudo apt-get install php5-fpm
5.配置nginx
配置nginx.conf梅忌,將keepalive_timeout設(shè)置為2。(減小服務(wù)器壓力?)
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.back(備份)
sudo vi /etc/nginx/nginx.conf
配置/etc/nginx/sites-available/default:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.back
sudo vi /etc/nginx/sites-available/default
(1)http訪問nginx配置:
root 后面的路徑是存放php文件的路徑除破,**如果需要修改為root目錄下的路徑牧氮,需要將root的目錄的權(quán)限修改為551。
server_name 可以不修改
index index.html index.htm 這行后面添加 index.php
location ~ .php$ 是php配置的信息
server {
listen 80 default_server;
listen [::]:80 default_server;
root /root/xxxx;
index index.html index.htm index.php;
server_name _;
location / {
try_files $uri $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root/xxxxxx;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
(2)https訪問nginx配置:
配置https之前瑰枫,需要先申請ssl證書踱葛。目前可以再阿里云申請免費的ssl證書,并下載證書文件光坝,上傳至自己的服務(wù)器尸诽。阿里云CA證書購買連接
https 配置與http配置基本相同,只是多了ssl證書的配置
ssl_certificate和ssl_certificate_key為證書路徑信息
server {
listen 443;
server_name _;
root /root/xxxxxx;
index index.html index.htm index.php;
ssl on;
ssl_certificate /root/xxxxx/ssl/213969032760959.pem;
ssl_certificate_key /root/xxxx/ssl/213969032760959.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root/xxxxx;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location / {
try_files $uri $uri/ =404;
}
}
6.配置php
在php.ini中設(shè)置cgi.fix_pathinfo=0教馆,并反注釋該行逊谋。
sudo cp /etc/php5/fpm/php.ini /etc/php5/fpm/php.ini.back
sudo vi /etc/php5/fpm/php.ini
//修改文件后重新加載
sudo service php5-fpm reload
sudo service php5-fpm restart
配置PHP支持MySQL:
sudo apt-get install php5-mysql php5-curl
7.驗證
配置完成后,進行驗證:http:// xxx.xxx.xxx.xxx/xxxx.php
vi /usr/share/nginx/html/info.php //修改為你配置的路徑
/*文件內(nèi)容
<?php
phpinfo();
?>
*/
vi /usr/share/nginx/html/mysqltest.php
/*文件內(nèi)容
<?php
//連接mysql
$con = mysql_connect( "localhost", "root", "xxxx");
if ( ! $con ) {
echo 'Could not connect: ' . mysql_error();
die();
}
//創(chuàng)建一個數(shù)據(jù)庫test
if( mysql_query( 'create database test' , $con ) ) {
echo 'Database created! ';
} else {
echo 'Database created error : ' . mysql_error();
}
mysql_close( $con );
?>
*/
8.一些小問題記錄
lnmp問題記錄