centos7安装php+mysql+nginx发布项目

2019-08-08  本文已影响0人  jiahaofeng

Nginx 安装

一、安装编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

二、首先要安装 PCRE

PCRE 作用是让 Nginx 支持 Rewrite 功能

1、下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
[root@bogon src]# cd /usr/local/src/
[root@bogon src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

这里出现“-bash: wget: command not found”的错误,执行“yum -y install wget”可解决

安装PCRE.png
2、解压安装包:
[root@bogon src]# tar zxvf pcre-8.35.tar.gz
3、进入安装包目录
[root@bogon src]# cd pcre-8.35
4、编译安装
[root@bogon pcre-8.35]# ./configure
[root@bogon pcre-8.35]# make && make install
5、查看pcre版本
[root@bogon pcre-8.35]# pcre-config --version
查看pcre版本.png
安装 Nginx
1、下载 Nginx,下载地址:http://nginx.org/download/nginx-1.6.2.tar.gz
[root@bogon src]# cd /usr/local/src/
[root@bogon src]# wget http://nginx.org/download/nginx-1.6.2.tar.gz
安装Nginx.png
2、解压安装包
[root@bogon src]# tar zxvf nginx-1.6.2.tar.gz
3、进入安装包目录
[root@bogon src]# cd nginx-1.6.2
4、编译安装
[root@bogon nginx-1.6.2]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
[root@bogon nginx-1.6.2]# make
[root@bogon nginx-1.6.2]# make install
5、查看nginx版本
[root@bogon nginx-1.6.2]# /usr/local/webserver/nginx/sbin/nginx -v
查看nginx版本.png

到此,nginx安装完成。

Nginx 配置

创建 Nginx 运行使用的用户 www:

[root@bogon conf]# /usr/sbin/groupadd www 
[root@bogon conf]# /usr/sbin/useradd -g www www

配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容

[root@bogon conf]#  cat /usr/local/webserver/nginx/conf/nginx.conf

user www www;
worker_processes 2; #设置值和CPU核心数一致
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}
http
{
  include mime.types;
  default_type application/octet-stream;
  log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
               '$status $body_bytes_sent "$http_referer" '
               '"$http_user_agent" $http_x_forwarded_for';
  
#charset gb2312;
     
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
     
  sendfile on;
  tcp_nopush on;
  keepalive_timeout 60;
  tcp_nodelay on;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  gzip on; 
  gzip_min_length 1k;
  gzip_buffers 4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
 
  #limit_zone crawler $binary_remote_addr 10m;
 #下面是server虚拟主机的配置
 server
  {
    listen 80;#监听端口
    server_name localhost;#域名
    index index.html index.htm index.php;
    root /usr/local/webserver/nginx/html;#站点目录
      location ~ .*\.(php|php5)?$
    {
      #fastcgi_pass unix:/tmp/php-cgi.sock;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
      expires 30d;
  # access_log off;
    }
    location ~ .*\.(js|css)?$
    {
      expires 15d;
   # access_log off;
    }
    access_log off;
  }

}

检查配置文件nginx.conf的正确性命令:

[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx -t
nginx.conf的正确性命令.png
启动 Nginx

Nginx 启动命令如下:

[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx
Nginx启动.png
访问站点

从浏览器访问我们配置的站点ip:


访问.png
Nginx 其他命令

以下包含了 Nginx 常用的几个命令:

/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx

php安装

安装前准备

centos下执行

yum -y install gcc gcc-c++ glibc
yum -y install libmcrypt-devel mhash-devel libxslt-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \
krb5 krb5-devel libidn libidn-devel openssl openssl-devel
cd /usr/local/src
wget http://php.net/get/php-5.6.27.tar.gz/from/a/mirror
tar -zvxf mirror
cd php-5.6.27

./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt \
--enable-mbstring --enable-pdo --with-curl --disable-debug  --disable-rpath \
--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \
--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \
--with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar

经过几次安装发现上面的编译有时候会少了openssl和pdo_mysql,于是决定用下面的编译:

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc/ \
--enable-inline-optimization \
--enable-shared \
--enable-opcache \
--enable-fpm \
--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 \
--enable-intl \
--with-curl \
--with-zlib \
--enable-zip \
--with-bz2 \
--enable-xml \
--with-pcre-dir \
--with-gd \
--enable-static \
--enable-wddx \
--with-xmlrpc \
--with-libdir=/usr/lib64 \
--with-jpeg-dir=/usr/lib64 \
--with-freetype-dir=/usr/lib64 \
--with-png-dir=/usr/lib64
php.png

接着执行

make

经过一段时间的等待, 会看到以下内容:


make.png

接着继续执行:

make  install 

成功的话可以看到以下结果:

make-install.png
添加环境变量:
 vi  /etc/profile

在末尾加入:

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

使改动立即生效:

source /etc/profile

然后php -v, 可以看到:


php版本.png

以上就完成了php的安装

下面是对php-fpm运行用户进行设置

1、为php提供配置文件
cd php-5.6.27
cp  php.ini-production  /usr/local/php/lib/php.ini
2、为php-fpm提供配置文件
cp  /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf  

cp /usr/local/php/sbin/php-fpm  /etc/init.d/

chmod  a+x  /etc/init.d/php-fpm

启动php

 /usr/local/php/sbin/php-fpm
php_start.png
3、nginx和php-fpm整合

编辑/usr/local/webserver/nginx/conf/nginx.conf

 vim /usr/local/nginx/nginx.conf

修改如下:

红框中“#”号去掉

图片.png

红框中“#”号去掉


图片.png

添加红框中内容


图片.png
改成如下
图片.png
重新载入nginx的配置文件:
/usr/local/webserver/nginx/sbin/nginx -s reload

测试php文件
在/usr/local/webserver/nginx/html下创建index.php文件,输入如下内容

 <?php
    phpinfo();
 ?>

浏览器访问
访问http://你的服务器ip/index.php,皆可以见到php信息了


图片.png

安装Mysql

(1)检查系统中是否已安装 MySQL。

rpm -qa | grep mysql
图片.png

返回空值的话,就说明没有安装 MySQL 。


注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。


图片.png

(2)查看已安装的 Mariadb 数据库版本。

rpm -qa|grep -i mariadb
图片.png

(3)卸载已安装的 Mariadb 数据库。

rpm -qa|grep mariadb|xargs rpm -e --nodeps
图片.png

(4)再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成。

rpm -qa|grep -i mariadb
图片.png

(5)下载安装包文件。

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
图片.png

(6)安装mysql-community-release-el7-5.noarch.rpm包

rpm -ivh mysql-community-release-el7-5.noarch.rpm
图片.png

安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件。


图片.png

执行 yum repolist all | grep mysql 命令查看可用的 mysql 安装文件。


图片.png
(6)安装mysql。
yum install mysql-server
图片.png

(7)检查mysql是否安装成功。

rpm -qa | grep mysql
图片.png

(8)启动 mysql 服务 。


systemctl start mysqld.service #启动 mysql
systemctl restart mysqld.service #重启 mysql
systemctl stop mysqld.service #停止 mysql
systemctl enable mysqld.service #设置 mysql 开机启动

(9)设置密码 。
mysql5.6 安装完成后,它的 root 用户的密码默认是空的,我们需要及时用 mysql 的 root 用户登录(第一次直接回车,不用输入密码),并修改密码。


# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("这里输入root用户密码") where User='root';
mysql> flush privileges; 
图片.png

(10)设置远程主机登录

mysql> GRANT ALL PRIVILEGES ON *.* TO 'your username'@'%' IDENTIFIED BY 'your password';

例如:执行以下命令,为root 用户添加远程登录的能力。

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
图片.png
开放3306端口

如果没有开放3306的端口,需要执行下面的操作:

firewall-cmd --zone=public --add-port=3306/tcp --permanent  //增加开启3306端口
systemctl restart firewalld.service //重启防火墙
firewall-cmd --reload  //重新载入配置

开放端口的详细操作也可以参考我另一篇文章:https://www.jianshu.com/p/efd99c21ee68

上一篇下一篇

猜你喜欢

热点阅读