很多人之前并没有接触
linux
系统,但同样渴望在
linux
下搭建服务,以及体验我们各个产品。
Linux
当然是有着无与伦比的稳定性和高效率。很多人因为它看似复杂的命令行界面望而却步。
今天,我为大家一步一步 安装
nginx + php
实现
lemp
环境。 由于
mysql
对于我们接入
sdk
并没有什么大用处。 这里就暂时不讲
mysql
的安装 。
本安装方法采用的业界最常见的编译安装
nginx + php-fpm
方法, 因此完全可以应用于正常的企业环境中。 看似可能有点点的复杂 但按照本教程 一步一步来绝对没问题。 之后,使用过程中也很省心。 下面正式开始。
现在,你有的 仅仅是 从腾讯云购买了一台 云主机(
cvm
)。里面 可能会有一个操作系统(我用的
centos6.3 32
位的)。 以及
root
账号和密码、还有 一个 提供给你的公网
ip
地址。 其他的什么都没有 , 系统空空如也。
1.登陆系统
首先我们 需要登录 系统的 工具 。 这边 我使用的 是
CRT(SecureCRT)
这个远程工具 ,当然 你使用
xshell
什么的 都可以 全凭个人习惯了。
这个软件上来 是这个界面的 点
file
下的
quick Connect
输入
IP
以及
root
账号 登录 , 进入之后会提示你 输入密码 输入密码后 进入 界面 是这个样子 (见下图)
这会儿小白同学又问了, 咦为啥你的是绿色的? 这个,可以去设置的。。默认的 那个 确实有点不好看 个人喜欢绿色这个风格。 但对于结果影响不大 这里就 不讲怎么弄了 。
总之你现在已经成功登陆到了 你的 系统中去了。
2.安装ftp服务
一会儿,我们需要把很多文件上传到服务器中, 所以配置一个
ftp
服务器是很有必要的。
腾讯云的
cvm
为我们提供了 很多的
yum
源。 供我们 下载。
ftp
我们只需
yum
安装即可。
不懂得同学 无脑 敲 下列命令
yum -y install vsftpd
之后 回车
然后就出现 上面 这个 样子 的 界面了 。。。
这样我们的
ftp
服务就安装完成了。
安装了
ftp
服务 需要启动它
我们 用
service vsftpd start
这个 命令 开启
ftp
服务。如图:
开启了
ftp
服务 我们就可以 利用本地的
windows ftp
上传工具 来 给你的 云主机 上传 文件了 。值得注意的是
root
用户 默认不能 作为
ftp
用户来上传。 所以 我们需要 本地创建一个 用户 。
敲命令
useradd xiaoming
回车 之后 输入
passwd xiaoming
回车 后 输入你的 密码 和 确认 你的密码。 我用的密码比较简单就用
123456
这个密码吧
大体就是 这个样子的 中间 有个 警告。。。一开始我 两次密码 不一致 所以 让我 重新输入了。 后面 那个 警告 就是我密码设置的 太简单了 这个 。。 你们可以设置的难一点嘛。。
好了,现在你有了一个用户叫做
xiaoming
我们可以用他来给服务器上传文件了。
现在 需要我们操作 你本地
windows
了 。我们 需要一个
ftp
上传工具。 这里 我用的是
FlashFXP
这个工具
进入后,大致是这个界面。 点击左上角 会话 之后,点快速连接 进入如下界面
点击 连接 即可 连接到 服务器
之后你就可以把你的本地文件很方便的上传到你的服务器当中了。
因为我们没有配置
ftp
服务器 所以上传的默认位置是你登录账号
xiaoming
的 家目录下 。
默认 我们上传的东西 都在这儿。
/home/xiaoming/
这个 文件夹下。
好了 至此 我们 的
ftp
服务 也 建好了 。
3.基本的开发工具 安装
这一步 很简单 编译安装软件 需要提前安装编译环境 。 我们 可以直接
yum
获得。 照着我的 命令 直接敲 就对了。
yum -y groupinstall "Development tools" "Compatibility Libraries"
回车
yum -y install pcre-devel openssl-devel libxml2-devel bzip2-devel libcurl-devel
好了 搞定 很简单吧 。
安装过程中 需要耐心等待 因为 要装很多 东西。
这俩命令输完就搞定了基本的编译环境下面就可以正式安装服务了。
4.安装nginx
我这边使用的版本是
nginx-1.8.0.tar.gz
你当然可以使用更高的版本 无所谓的 。
直接利用刚才的
ftp
把源码包上传到服务器上。
直接 拖过去 就可以 。
之后我们就可以在 服务器看到了
敲 命令
cd /home/xiaoming
tar xf nginx-1.8.0.tar.gz -C /usr/src/
cd /usr/src/nginx-1.8.0/
之后 你可以
ls
看一下 当前目录是不是 这样的
之后
1.
添加
nginx
用户
groupadd -r nginx
useradd -r -g nginx nginx
你可能 收到 提示 已经有了
nginx
用户 和 组 这个无所谓 有了 更好。。
2.
接着开始编译和安装:
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre
回车
直接 复制粘贴 没啥 好说的
注意 : 当前 所在的目录 一定是
/usr/src/nginx-1.8.0/
这个 目录 就是我上面截图给你样子。
上面那个 没问题 就继续 敲命令 :
make && make install
这些都搞定 看到的 就是这个样子 。
3.
为
nginx
提供
SysV init
脚本
:
利用
vim /etc/rc.d/init.d/nginx
下面 这些都可以直接复制的
新建文件
/etc/rc.d/init.d/nginx
,内容如下:
#!/bin/bash
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
而后为此脚本赋予执行权限:
chmod +x /etc/rc.d/init.d/nginx
添加至服务管理列表,并让其开机自动启动:
chkconfig --add nginx
chkconfig nginx on
而后就可以启动服务并测试了:
service nginx start
你也可以测试 一下
service nginx restart
确认一下 是否 真的 可以了
我的 出现了 这个 问题。。。
提示 我们 有个 文件夹 没创建 。 那就 创建 一下喽
mkdir -pv /var/tmp/nginx/client/
然后 就可以喽 ! 至此 我们
nginx
服务 也 配置好了 。
简单 测试 一下 嘛
cd /usr/local/nginx/html/
ls
你会 看到
修改 其中的
index.html
的内容
就 简单 写一句话 就好了 然后 现在 可以用 浏览器 访问下 你的
ip
好了 现在 你的
nginx
配置 完成喽 。
是不是很激动 呢 ?
5.安装php fastcgi
下面开始 安装
php
我们采用的安装包
php-5.6.2.tar
1. 首先 还是 把 源码包 拷贝到服务器上面去。 利用
ftp
2. 把 源码包解压缩 到
/usr/src/
目录下
cd /home/xiaoming
tar xf php-5.6.2.tar.gz -C /usr/src/
cd /usr/src/php-5.6.2
ls
此时 你看到的 应该是这样。。
密密麻麻 很多 文件 。 不过不要紧,接下来操作很简单。
3..
编译 安装
当然在编译前还给确认编译环境
保险起见,我们再装一个组
执行命令
yum -y groupinstall "X Software Development"
这句话可加可不加都不影响
之后
复制下面这一串命令 (注意 这些是 一条命令 这些参数都要写上)
./configure --prefix=/usr/local/php --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-libxml-dir=/usr --enable-xml --with-mhash --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-curl
---------------------------------
分割线
------------------------------------------------------------------------
下面这个参数 如果你还有 mysql 就把这句话加上 对应的 都是mysql
的路径
--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config
执行 成功 会出现 如下 界面 :
之后
make & make intall
应该 会 开始 滚屏了
Php
编译时间会很长耐心等待下吧。
好了 经过一段时间 的 疯狂 滚屏 我们终于编译好了
php
4.为
php
提供配置文件
cp php.ini-production /etc/php.ini
5.为
php-fpm
提供
Sysv init
脚本,并将其添加至服务列表
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
6.为
php-fpm
提供配置文件:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
7.编辑
php-fpm
的配置文件:
vim /usr/local/php/etc/php-fpm.conf
配置
fpm
的相关选项为你所需要的值,并启用
pid
文件(如下最后一行):
pm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pid = /usr/local/php/var/run/php-fpm.pid
其中 这些 参数 根据你 服务器的性能进行 调整
最后 一行的
pid
一定要 写成 那个样子
接下来就可以启动
php-fpm
了:
service php-fpm start
使用如下命令来验正(如果此命令输出有中几个
php-fpm
进程就说明启动成功了):
ps aux | grep php-fpm
6.整合nginx和php5
1、编辑
/etc/nginx/nginx.conf
,
vim /etc/nginx/nginx.conf
启用如下选项:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
注意到 这些 “
#
” 了么 把这些 把我 圈起来的 那些全都 删掉 前面的 “
#
”
就成了 这样
还是 这个文件
在所支持的主页面格式中添加
php
格式的主页,类似如下:
location / {
root html;
index index.php index.html index.htm;
}
把 这个
改为 这样:
2、编辑
/etc/nginx/fastcgi_params
,
vim /etc/nginx/fastcgi_params
打开后 大概是这样的 :
之后 这个 文件 所有的 内容全部删除掉
复制 粘贴 下面的 内容到这个文件
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
保存 退出
3.
而后重新载入
nginx
的配置文件:
service nginx reload
7.测试
进入 网站根目录
cd /usr/local/nginx/html/
编辑 一个
php
文件
vim test.php
内容如下:
<?php
phpinfo();
?>
保存 退出 即可 ;
之后我么你访问 网页
看到这个页面, 此时大功告成 一个 比较专业级的环境就这样搭建好了