您的位置:首页 > 运维架构 > Nginx

阿里云配置nginx+php+mysql+ftp 服务器环境(亲测过程)

2016-11-19 14:11 603 查看
原来并没有使用过Linux环境都是别人配置好,直接来用,这次自己买了一个阿里云的服务器,记录下自己配置的过程。

下面的内容并不是我的原创,而是在互联网上摘取拼合成的,所以......大家要感谢原作者!

1、如何连接服务器执行环境配置

我使用的是centos6.5 64位版本,如果您不是第一次接触linux那一定知道,linux不是一个可视化界面的系统,所以要摒弃windows的操作习惯,我使用的xshell这个软件链接的服务器,连接语句是 ssh root@ip地址

1的位置就是写入你的ip地址,然后回车鞋面就会自动连接,弹框提示输入密码

输入服务器的密码,点击确定即链接上了

ok,下面就可以开始配置环境了,第一步我们先配置nginx

2、nginx安装部分

想在 CentOS 系统上安装 Nginx ,你得先去添加一个资源库,像这样:
vim /etc/yum.repos.d/nginx.repo


使用 vim 命令去打开 /etc/yum.repos.d/nginx.repo ,如果 nginx.repo 不存在,就会去创建一个这样的文件,打开以后按一下小 i 键,进入编辑模式,然后复制粘贴下面这几行代码,完成以后按 esc 键退出,再输入 :wq (保存并退出)
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1


完成以后,我们就可以使用 yum 命令去安装 nginx 了,像这样:
yum install nginx


安装好以后测试一下 nginx 服务:
service nginx status


应该会返回:
nginx is stopped (nginx 已停止)


再测试一下 nginx 的配置文件:
nginx -t


应该会返回:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


... syntax is ok,... test is successful,说明配置文件没问题,同时这个结果里你可以找到 nginx 的配置文件 nginx.conf 所在的位置。

操纵 nginx 服务

操纵服务,可以使用使用 service 命令,它可以启动(start),重启(restart),或停止服务(stop),比如要启动 nginx 服务:
service nginx start


服务启动以后,你就可以在浏览器上使用服务器的 IP 地址,或者指向这个地址的域名访问服务器指定的目录了。你会看到类似下面的这些文字。

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.
4000

3、nginx配置部分

下面来看一下为 nginx 配置虚拟主机。先进入到 nginx 配置文件目录:
cd /etc/nginx/conf.d


复制这个目录里的 default.conf ,复制以后的名字可以使用你的虚拟主机名字。比如创建一个 nginx.ninghao.net 的虚拟主机。复制文件可以使用 cp 命令,像这样:
cp default.conf nginx.ninghao.net.conf


再去编辑一下这个复制以后的配置文件,可以使用 vim 命令:
vim nginx.ninghao.net.conf


你会看到像这样的代码:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log   /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
...
}


server_name 就是主机名,也就是跟这个虚拟主机绑定在一块儿的域名,我事先把 nginx.ninghao.net 指向了服务器,这个虚拟主机就是为它准备的,所以,server_name 后面的东西就是 nginx.ninghao.net 。紧接着 server_name 下面可以是一个root,就是这个虚拟主机的根目录,也就是网站所在的目录。比如我们要把 nginx.ninghao.net 这个网站的文件放在/home/www/nginx.ninghao.net 下面,那么这个 root 就是这个路径。

然后去掉 location / 里面的 root 这行代码。再在 index 后面加上一种索引文件名,也就是默认打开的文件,这里要加上一个 index.php ,这样访问 nginx.ninghao.net 就可以直接打开 root 目录下面的 index.php 了。稍后我们再去安装 php 。修改之后,看起来像这样:
server {
listen 80;
server_name nginx.ninghao.net;
root /home/www/nginx.ninghao.net;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;

location / {
index index.php index.html index.htm;
}
...
}


这个配置文件先修改到这,稍后,我们再回来继续修改一下它。保存一下,按 esc ,输入 :wp(保存并退出)。现在虚拟主机应该就可以使用了。主机的域名是 nginx.ninghao.net,访问它的时候,打开的是 /home/www/nginx.ninghao.net 这个目录里面的东西,你可以在这个目录下放点东西。

重启 nginx 或者重新加载 nginx 可以让配置文件生效。
service nginx reload


现在,打开浏览器,输入你为虚拟主机设置的域名,看看是否能打开你指定的目录里的东西。

4、配置php-fpm部分

要让 nginx 能够执行 php 文件,需要去安装一下 php-fpm,它直接包含在了 CentOS 资源库里,所以直接使用 yum 命令可以安装它:
yum install php-fpm


完成以后,可以检查一下 php-fpm 的运行状态,使用 service 命令:
service php-fpm status


返回:
php-fpm is stopped(php-fpm 已停止)


启动 php-fpm 同样可以使用 service 命令:
service php-fpm start

5、让 nginx 可以执行 php

现在我们应该就可以让 nginx 去执行 php 了。不过你需要修改一下 nginx 的配置文件,之前我们在配置虚拟主机的时候,创建了一个 nginx.ninghao.net.conf 的配置文件,需要去修改下 nginx 的这个配置文件,才能去执行 php 。使用 vim 命令去编辑它:
vim /etc/nginx/conf.d/nginx.ninghao.net.conf


注意你的配置文件不一定叫 nginx.ninghao.net.conf,应该是你自己命名的配置文件。打开以后,找到下面这段字样的代码:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#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;
#}


这是 nginx 默认给我们的用来执行 php 的配置,从 location 开始取消注释,会让这个配置生效,然后我们还得简单去修改一下:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
#   root           html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include        fastcgi_params;
}


注意 root 那里仍然是被注释掉的,还有 SCRIPT_FILENAME 后面修改了一下,把 /scripts 换成了 $document_root 。保存并退出。然后重新启动 nginx:
service nginx restart

6、测试是否可以执行 php

现在,我们已经安装了 php-fpm,并修改了 nginx 的配置文件让它可以去执行 php,下面,我们得去测试一下,可以使用 php 的 phpinfo(); 函数,方法是在你的虚拟主机根目录下面,创建一个 php 文件,命名为 phpinfo.php,然后在这个文件里输入:
<?php phpinfo(); ?>


保存文件并退出。在浏览器里打开刚才创建的这个 php 文件。我这里应该是 http://nginx.ninghao.net/phpinfo.php。打开以后,你应该能看到像下面这样的界面,如果能,说明
nginx 已经可以执行 php 了。



7、配置扩展

现在,我们有了可以提供 web 服务的 nginx ,并且安装了 php-fpm ,配置了 nginx 可以让它去执行 php ,也安装了数据库管理系统。不过在运行真正的网站的时候,我们还需要为 php 安装一些额外的扩展,比如 处理 mysql 数据库的 mysql 扩展,缓存功能的 apc 扩展,处理图像的 gd 扩展等等。安装它们同样可以使用 yum 命令。
yum install php-pecl-apc php-mysql php-gd php-mcrypt php-pear php-mbstring php-xmlrpc php-dom


上面安装了一些 php 的扩展,如果你发现在安装网站的时候提示需要安装其它的扩展,同样可以使用 yum 命令去安装。安装完成以后,需要重启一下 php-fpm :
service php-fpm restart

8、安装mysql

mysql 可以管理网站用到的数据库,WordPress 和 Drupal 也都支持 mysql 数据库。所以我们的 Web 运行环境里,需要安装一个 mysql 。之前我们已经添加了资源库,所以可以直接使用 yum 命令去安装  mysql :
yum install mysql-server


安装完成后,使用 service 命令启动 mysql 服务:
service mysqld start


然后我们需要简单配置一下 mysql ,默认安装以后 mysql 的 root 用户是没有密码的,对于生产环境来说,这肯定是不行的,另外还有一些安全相关的设置,可以使用下面这行命令去配置一下,它是一个向导,问你一些问题,你要给出答案,比如是否要设置 root 用户的密码, 密码是什么等等。
mysql_secure_installation


Enter current password for root (enter for none):

解释:输入当前 root 用户密码,默认为空,直接回车。
Set root password? [Y/n]  y

解释:要设置 root 密码吗?输入 y 表示愿意。
Remove anonymous users? [Y/n]  y

解释:要移除掉匿名用户吗?输入 y 表示愿意。
Disallow root login remotely? [Y/n]  n

解释:不想让 root 远程登陆吗?输入 y 表示愿意。
Remove test database and access to it? [Y/n]  y

解释:要去掉 test 数据库吗?输入 y 表示愿意。
Reload privilege tables now? [Y/n]  y

解释:想要重新加载权限吗?输入 y 表示愿意。

这里安装完之后,会有一个问题,因为本人喜欢使用工具链接数据库,所以本地使用navicate链接远程数据库,但是会报错1130

解决办法如下:
1,查询Mysql中所有用户的权限:

 


 
意料之中,mysql的root用户只能通过本机访问,下面我们来改一下权限:
 

?
就可以啦。。。当然是百度来的

继续!

9、安装ftp

大家看到了,所有的文件操作在ssh中可以通过vim方法来实现,但是,你知道在windows中用惯了,还是喜欢看图形界面,所以在这里我安装了ftp可以远程来上传修改文件

软件:winscp(百度下载就好了)

1.安装vsftpd

yum install vsftpd

2.启动/重启/关闭vsftpd服务器
[root@localhost ftp]# /sbin/service vsftpd restart

Shutting down vsftpd: [ OK ]

Starting vsftpd for vsftpd: [ OK ] 

OK表示重启成功了.

这里现在就可以直接使用root及你的密码来查看了,当然这样的是超级用户,留给自己用的,要配置指定要文件夹的用户,我就在不在这里写了,大家继续百度下吧

10、最后一个问题

是阿里云的特有问题,大家知道阿里云购买服务器后会有一个自带的系统盘20g,,但是大部分服务器都会自己在购买一个云盘,上面我们做的所有事情其实都是在系统盘里操作,在linux系统里要使用你购买的云盘需要挂载!

操作:http://www.voidcn.com/blog/wlzx120/article/p-3681332.html

按照这个来操作就好了,左后记得把nginx配置的root指定到挂在上去的文件夹,这样以后你的项目就都放到你独立购买的云盘了!!

只是一个记录,打完收工!!88
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php centos mysql nginx ftp