美文网首页Java首页投稿(暂停使用,暂停投稿)程序员
CentOS+Nginx+PHP+MySQL 服务器搭建自己的网

CentOS+Nginx+PHP+MySQL 服务器搭建自己的网

作者: 成功的失败者 | 来源:发表于2016-11-05 23:30 被阅读3322次

    今天教大家怎么搭建自己的小网站。首先要做一个大家都能访问的网站需要一个域名和一个主机。这两样在百度云、阿里云、腾讯云都有卖而且价格还不一样,想省钱的小伙伴可以先货比三家再进行购买。阿里云和腾讯云都有针对于学生的优惠政策。通过学生实名认证之后在阿里云可以享受9.9元一个月的主机,在腾讯云可以享受1元一个月的主机并且送一个域名。经过简单的对比阿里云和腾讯云。我感觉腾讯云比阿里云更便宜一些。所以选择了在腾讯云购买域名和主机。
    腾讯云域名选购页面:

    6CBE073E-33F6-4E2B-8E9D-1BEABDD42F8C.png
    连接:https://dnspod.qcloud.com/?from=console
    腾讯云主机选购页面:
    A1CE1F91-2438-4CE3-9B71-97B857C9C352.png
    连接:https://buy.qcloud.com/cvm
    SecureCRT登录终端
    根据自己的外网ip地址、用户名、密码就可以登录主机了,为了方便远程登录,我这里安装了一个软件SecureCRT,SecureCRT方便的是可以同时开启多个终端操作远程服务器。而且还可以进行文件上传和下载。
    SecureCRT管理界面:
    4DE609BC-19B0-44BE-9BE9-EBD3D89A7720.png

    FileZilla文件上传下载
    但是对于文件上传下载功能,我更推荐安装一个FTP工具,FileZilla支持多文件上传,续点上传,可视化目录界面,我这里使用的是FileZilla。
    FileZilla管理界面:


    BC8878F5-D0B2-49D8-AAD2-725738647E80.png

    CentOS安装MySQL

    通过SecureCRT登录远程终端。
    1.下载mysql的repo源

    $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    
    0CAEE63E-F51D-4AF7-8091-1A5CA7438658.png

    2.安装mysql-community-release-el7-5.noarch.rpm包

    $ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
    
    50AF011D-7558-4B2F-A3E1-C5237DAD6653.png
    1. 安装mysql
    $ sudo yum install mysql-server
    

    这个安装内容比较长等待输入时,输入y如下图,以后遇到这种情况都是输入y。


    81423943-D8A8-4C07-A6E1-3537DC2937DD.png

    安装成功之后是没有密码的,我们可以重置一个数据库密码。

    1. 重置密码
      远程登录
    $ mysql -u root -p
    

    登录成功之后修改密码

    mysql>use mysql;
    mysql>update user set password=password('123456') where user='root';
    mysql>exit;
    
    1. 开放3306端口
      用vim打开iptables文件
    $ sudo vim /etc/sysconfig/iptables
    

    按i切换到插入模式添加以下内容:

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
    

    :wq保存后重启防火墙:

    $ sudo service iptables restart
    

    这样从其它客户机也可以连接上mysql服务了。

    CentOS安装PHP

    1、下载php源码包
    http://www.php.net/downloads.php
    将安装包下载在本地之后使用之前安装的FileZilla上传到远程服务器
    2 、安装php
    解压php压缩包

    tar -xvf php-5.6.2.tar.gz
    

    查看解压目录

    ls
    
    213D6DB7-1E49-4B89-8030-0439ACC0B908.png

    进入解压目录

    cd  php-5.6.2
    

    执行configure文件

     ./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --with-readline --without-sqlite3 --without-pdo-sqlite --with-pear
    

    出现错误:no acceptable C compiler found in $PATH
    See `config.log' for more details
    解决办法:

    安装GCC软件套件:yum install gcc
    

    出现错误: congigure error: xml2-config not found.
    解决办法:

    执行命令: sudo yum install libxml2-devel
    查看是否成功: find / -name "xml2-config"
    

    出现错误: congigure error: Cannot find OpenSSL's <evp.h>
    解决办法:

    yum install openssl openssl-devel
    ln -s /usr/lib64/libssl.so /usr/lib/
    

    出现错误: configure: error: Please reinstall the BZip2 distribution
    解决办法:

    yum install bzip2 bzip2-devel
    

    出现错误: configure: error: Please reinstall the libcurl distribution -easy.h should be in <curl-dir>/include/curl/
    解决办法:

    出现错误: configure: error: mcrypt.h not found. Please reinstall libmcrypt.
    解决办法:

    sudo yum install libmcrypt libmcrypt-devel mcrypt mhash
    

    出现错误:configure: error: Please reinstall readline - I cannot find readline.h
    解决办法:

    sudo yum install readline-devel
    

    最后执行make操作

    make 
    make install
    

    如果出现有提示make: [ext/fileinfo/libmagic/apprentice.lo] Error 1错误。的/configure 后面加上--disable-fileinfo, 再次./configure即可。
    如果出现make: [sapi/cli/php] Error 1 修改Makefile 在EXTRA_LIBS = 最后加 -liconv 然后重新再次 make 即可。
    添加 PHP 命令到环境变量

    sudo vim /etc/profile
    

    在末尾加入

    PATH=$PATH:/usr/local/php/bin
    export PATH
    

    要使改动立即生效执行

    . /etc/profile 或 source /etc/profile
    

    查看环境变量

    echo $PATH
    

    查看php版本

    php -v 
    

    配置php-fpm

    cd /usr/local/php/etc
    cp php-fpm.conf.default php-fpm.conf
    

    启动php-fpm

    sudo /usr/local/php/sbin/php-fpm
    

    出现错误:[pool www] cannot get uid for user 'www'
    解决办法:

    新建一个启动php的用户:sudo adduser php
    编辑php-fpm.conf文件: sudo vi php-fpm.conf
    将user和group分别改为php
    
    B5D89F46-5715-4EE6-A7AB-D5EEC5FEAE35.png

    再次启动php-fpm

    sudo /usr/local/php/sbin/php-fpm
    

    CentOS安装Nginx

    1.安装依赖环境。
    在安装nginx前,需要确保系统已经安装了g++、gcc、 ncurses-devel 、openssl-devel、pcre-devel和zlib-devel软件。

    yum install gcc gcc-c++ ncurses-devel
    yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
    

    检查系统安装的ningx

    find -name nginx
    ./nginx 
    ./nginx/sbin/nginx 
    ./nginx-1.2.6/objs/nginx
    

    卸载系统原有的nginx

    yum remove nginx ```
    2.centos安装nginx 
    进入根目录新建一个download目录
    

    cd /
    mkdir download

    进入download目录
    

    cd download

    下载nginx安装包
    

    wget http://nginx.org/download/nginx-1.9.9.tar.gz

    解压安装包
    

    tar -zxv -f nginx-1.9.9.tar.gz

    重命名解压文件夹
    

    mv nginx-1.9.9 nginx ```
    进入nginx目录执行configure

    cd nginx 
    ./configure --prefix=/usr/local/nginx 
    make 
    make install
    

    特别注意:configure --prefix 配置,后面的目录,不能是安装包当前的解压目录,因为后面再install过程中,会从解压包中拷贝配置文件到指定的prefix中去,如果这两个目录相同,cp失效出现 the same file 的错误,导致
    install 终止,安装会失败。
    3.配置防火墙
    配置防火墙开启80端口,不开启的话,有时防火墙会不让外网访问80端口我们就无法访问nginx配置的网站了。
    修改防火墙配置:
    输入以下命令:

    sudo vi /etc/sysconfig/iptables
    

    在文件中添加:

    iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
    

    重启防火墙

    systemctl restart iptables (代替 service iptables restart)```
    4.启用nginx命令
    

    cd /opt/nginx/sbin
    ./nginx ```
    5.停止nginx命令
    查询nginx主进程号

    ps -ef | grep nginx
    

    停止进程

    kill -QUIT 主进程号 
    

    快速停止

    kill -TERM 主进程号  
    

    强制停止

    pkill -9 nginx 
    

    6.0重启nginx命令

    /usr/local/nginx/sbin/nginx -s reload 
    

    7.验证nginx配置成功

    9651E60E-964B-4F0B-B8DD-BD7ADD01F91C.png

    8.修改nginx的配置文件(/usr/local/nginx/conf/nginx.conf)

    cd /usr/local/nginx/conf
    sudo vim nginx.conf
    

    找的如下代码:

    EA3E7645-9F26-46EC-AE61-AD2C060CAC1F.png

    将注释井号删除掉,并且修改网站根目录让其能够访问php文件,如下图。

    5A35C293-4378-4006-8BD4-61B01BBEDE01.png
    location / {
    root web根目录;
    index index.html index.htm index.php;
    }
    location ~ \.php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME 需要修改web根目录$fastcgi_script_name;
    include fastcgi_params;
    }
    

    重启nginx

    cd /usr/local/nginx
    ./sbin/nginx -s reload
    

    在web根目录下创建index.php

    cd html
    sudo vim index.php
    

    在index.php文件中加入如下php代码显示php配置信息

    <?php echo phpinfo(); ?>
    

    在浏览器中输入http://ip/index.php查看成功即可。
    //注:根据自己的配置修改web根目录即可,如我的为/usr/local/nginx/html。
    如果启动php-fpm出现错误: can not get uid for www,新建一个nginx用户,修改php-fpm.conf中user为nginx group为nginx
    9.验证成功访问php页面。

    E5FB6079-45BA-4C3B-B2DF-F378B6ABB845.png

    相关文章

      网友评论

      本文标题:CentOS+Nginx+PHP+MySQL 服务器搭建自己的网

      本文链接:https://www.haomeiwen.com/subject/nehguttx.html