我使用的是阿里云的服务器 Centos7 64位的版本

1. 连接服务器

这个是Xshell5的版本 安装好之后我们开始连接服务器

2. 安装nginx

首先安装nginx的依赖

yum install gcc gcc-c++ openssl openssl-devel cyrus-sasl-md5

上图是将代码执行后的结果

中途会询问我们是否安装 我们按 “y” 并回车安装

上图表示依赖已经安装完成!! 下面安装nginx

在root家目录下创建一个software目录 mkdir software

(可以使用 cd ~切换到用户的家目录) 

下面将我们需要的所有软件下载到software目录中 
我们可以用wget

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

wget http://sourceforge.net/projects/pcre/files/pcre/8.35/pcre-8.35.tar.gz/download

wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.8.tar.gz?download

wget http://cn2.php.net/distributions/php-7.1.5.tar.gz
下载完成后对文件进行解压

tar -zxvf nginx-1.10.1.tar.gz

cd nginx-1.10.1

./configure

下面进入到nginx解压后的目录并进行编译

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=../pcre-8.39 --with-zlib=../zlib-1.2.8

我们将nginx安装到/usr/local/nginx目录下

下图这样就是编译成功

1.下面执行make

2.make install 进行安装

上图表示安装nginx成功

首次启动nginx

/usr/local/nginx/sbin/nginx

ps -e |grep nginx

访问测试

如果你能看见上面这样的效果就表示nginx已经启动成功!!!

nginx加入到开机自动启动

到这里我们的nginx还没有实现开机自动启动 那么我们就把他加入到开机自动启动服务中!

我们先编辑系统启动脚本

vim /etc/rc.local

这个文件是系统启动后会自动执行的,我们就将启动命令加入到这个文件中

我们可以按i 进入到编辑模式 插入对应的程序启动命令即可

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf &

随后我们:wq保存文件并退出,

init 6

重启系统

重启后我们连接到服务器上使用

ps -e | grep nginx

查看nginx的进程发现已经成功的启动了

如果你发现你的进程没有成功的启动可能是因为你的这个脚本文件没有可以执行的权限 请给该文件增加 其他人可以执行的权限

chmod o+x /etc/rc.local

后重启再次查看

下图表示如果我们不在nginx程序的目录中无法使用nginx的命令 会提示找不到nginx

下面我们将nginx的位置加入到环境变量中

vi /etc/profile 

编辑环境变量文件,加入如下内容

随后我们更新环境变量

source /etc/profile

并使用命令再次重启nginx

配置nginx启动脚本

cd  /etc/init.d

vim nginx

把如下内容写到 nginx文件里

#!/bin/bash
#chkconfig: 2345 99 20
#description: nginx-server
nginx=/usr/local/nginx/sbin/nginx
case $1 in
        start)
                netstat -anptu | grep nginx
                if [ $? -eq 0 ]
                then
                    echo "nginx service is already running"
                else
                     echo "nginx Service started successfully "
                    $nginx
                fi
         ;;
        stop)
                $nginx -s stop
                if [ $? -eq 0 ]
                then
                echo "nginx service closed successfully"
                else
                    echo "nginx server stop fail,try again"
                fi
        ;;
        status)
                netstat -anlpt | grep nginx
                if [ $? -eq 0 ]
                then
                    echo "nginx server is running"
                else
                    echo "nginx service not started "
                fi
        ;;
        restart)
                 $nginx -s reload
if [ $? -eq 0 ]
                 then
                     echo "nginx service restart successfully "
                 else
                     echo "nginx server restart failed"
                 fi
        ;;
        *)
                 echo "please enter {start restart status stop}"
        ;;

esac

保存退出!

重启nginx

/etc/init.d/nginx restart

在阿里云安全组添加80端口

关闭防火墙

systemctl status firewalld.service

放问服务器IP地址 看到下图 安装说明成功

3.下面编译安装PHP

安装必要的软件依赖

yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg \
libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline \
readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel \
db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel \
libmcrypt-devel libmemcached-devel

中途会有提示询问是否安装 按y继续安装

安装完成后

我们去软件目录解压文件

tar -zxvf  php-7.1.5.tar.gz

进入PHP解压后的目录

cd php-7.1.5/

编译

./configure \
--prefix=/usr/local/php-fpm \
--with-config-file-path=/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache \
--enable-intl \

安装

1.make 
2.make install

配置php-fpm

1.复制一份配置文件到系统配置文件夹里

cd root/software/php-7.1.5

cp php.ini-production /etc/php.ini

2.到php-fpm的安装目录etc下复制一份配置文件

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

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
作者:MMTTMM
链接:https://www.imooc.com/article/44391
来源:慕课网

随后我们编辑这个配置文件

找到

;pid = run/php-fpm.pid

;error_log = log/php-fpm.log  =>/var/log/nginx/php-fpm.log

;include=/usr/local/php-fpm/etc/php-fpm.d/*.conf

如果有注释,就去掉前面的注释  根据需要存放文件的位置 重新指定文件的路径

保存退出!

进入php-fpm.d目录

cd php-fpm.d

修改 www.conf 文件

如果这个文件不存在,就从default复制一份:

cp www.conf.default www.conf

vim www.conf

将配置文件中的 user 和 group 部分的 nobody 改成 www:

修改

user = www

group = www

如果www用户不存在,那么先添加www用户

groupadd www

useradd -g www www

我们第一次启动php-fpm测试

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

ps -e |grep php-fpm

上图我们创建了对应的用户 系统会默认为我们创建一个同名的用户组,再次重新启动php-fpm后查看进程就已经启动成功了

我们可以通过快捷命令管理php-fpm 
关闭php-fpm (路径要和我的一样)

kill `cat /usr/local/php-fpm/var/run/php-fpm.pid `

1.加入系统变量
sudo echo "PATH=$PATH:/usr/local/php-fpm/bin">> /etc/profile

  2.下面让环境变量生效

source /etc/profile

php -v

另一种配置启动命令

CD

/root/software/php-7.1.5/sapi/fpm

进入目录

cp init.d.php-fpm   /etc/init.d/php-fpm

启动php-fpm测试

/etc/init.d/php-fpm start

 3.如果升级PHP版本一定要把原来的安装目录以及在安装目录外的安装信息彻底删除重新编译安装,重复以上操作即可!

(注意:如果第二次编译出现扩展已开启却无法加载到!说明上一次卸载没有彻底)

4. 整合Nginx与PHP

1、编辑Nginx.conf,启用如下选项:

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

location ~ \.php$ {

root          html; =》root /usr/local/nginx/html

fastcgi_pass  127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;   =》root /usr/local/nginx/html$fastcgi_script_name;

include        fastcgi_params;

}

重新指定根目录!

在所支持的主页面格式中添加php格式的主页,类似如下:

location / {

root  html;   =》root /usr/local/nginx/html

index  index.php index.html index.htm;

try_files $uri $uri/ /index.php?$query_string;//新增 类似路由重定向  作用是美化路由!

}

顺便开启错误日志

去掉error_log  access_log前的注释,并指定错误日志的文件路径。

error.log  /var/log/nginx/error.log;

access_log  /var/log/nginx/access_log;

创建目录用于存储错误日志

cd /var/log/

mkdir nginx

2、编辑配置文件下的fastcgi_params,

将其内容更改为如下内容:

# mv fastcgi_paramsfastcgi_params.bak 
# cat 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;

保存退出!

杀死php-fpm所有的进程

kill `cat /usr/local/php-fpm/var/run/php-fpm.pid `

#重新载入配置

/etc/init.d/php-fpm restart
 /etc/init.d/nginx restart

3、在/usr/local/nginx/html目录下新建index.php测试页面

vim index.php

<?php

phpinfo();

<?

4.可通过浏览器 访问此测试页面,验证nginx连接php配置是否成功.

5.如果访问失败 可以 cd /var/log/nginx  目录里查看错误日志!access.log error.log php-fpm.log!看看php-fpm 和nginx是否在运行,以及根据错误日志 去寻找答案!

5. 手动编译安装Mysql-5.7.20

1、安装编译环境需要的依赖包:

yum -y install gcc gcc-devel gcc-c++ gcc-c++-devel autoconf* automake* zlib* libxml*ncurses-devel \
ncurses libgcrypt* libtool* cmake openssl openssl-devel bisonbison-devel \
 perl-Data-Dumper boost boost-doc boost-devel

2、下载源代码和解压源代码:

cd /root/software
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
tar -zxvf mysql-boost-5.7.20.tar.gz

3、创建mysql用户和data目录:

groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
mkdir /usr/local/mysql/conf
chown -R mysql:mysql /usr/local/mysql/
4、定制配置:
cd /root/software/mysql-5.7.20/
1.
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \                     //5.7版本必须添加这个参数
-DWITH_SYSTEMD=1
 
2.make
 
3.make install
 
4.如果安装到中间进程结束则说明内存不足

临时使用交换分区来解决吧

sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile
安装完成之后 则清除分区
sudo swapoff /swapfile
sudo rm /swapfile
 
5、修改配置文件:
如果/etc下面没有 则去复制一份这里!

vi /etc/my.cnf

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8

log-error=/var/log/mysqld.log
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

暂时不用添加:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,

NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

6、设置环境变量:

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile    //把这两个路径添加到环境变量中,并放到profile文件中使之开机自运行,否则不生效

echo 'export PATH' >> /etc/profile      //把PATH设为全局变量

source /etc/profile

7、初始化数据库:

cd /usr/local/mysql/

bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

记得给日志文件添加权限

8、添加到systemctl系统服务:

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

systemctl daemon-reload

systemctl start mysqld

netstat -anpt | grep 3306

systemctl enable mysqld

9、Mysql设置帐户和密码,默认无密码

mysqladmin -u root -p password "root"

mysql -u root -p

10更改用户密码命令:

mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
11、防火墙开放mysql端口
启动一个服务:systemctl start firewalld.service
显示一个服务的状态:systemctl status firewalld.service
firewall-cmd --add-service=mysql --permanent
firewall-cmd --reload
yum install lsof
lsof -i:3306
 
添加3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=3306/tcp

 

12、开放 Root 远程连接权限:

mysql -u root -p
password 为远程连接用的密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit;
启动mysql
systemctl enable mysqld.service
systemctl daemon-reload
systemctl start mysqld.service
systemctl status mysqld.service
 
 注意:如果是阿里云服务器的话记得在安全组添加3306端口 不然访问不了(记得关闭防火墙)
 
6.安装git

1、查看是否安装了git

rpm -qa|grep git

若已经安装,需要先卸载。卸载命令如下:
rpm -e --nodeps git  或者  rpm -e git

2、安装Git

yum install git

git --version

3.直接到根目录 捡代码

git clone 仓库地址url
7.全局安装composer

1. 下载composer-setup.php到/usr/local

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" 

2. 安装

php composer-setup.php 

3. 将composer设置成全局

mv composer.phar /usr/local/bin/composer 

4. 替换成中国全量镜像

composer config -g repo.packagist composer https://packagist.phpcomposer.com

Centos7编译安装lnmp(nginx1.10 php7.0.2)的更多相关文章

  1. centos7编译安装LNMP(nginx-1.16.0,mysql8.0.16,php-7.3.6)常见问题报错及解决方法

    LNMP的安装与配置 nginx-1.16.0安装及配置: 第一步:前往官网下载nignx源码包 下载完毕后上传至服务器(先安装lrzsz) yum -y install lrzsz 安装完毕后执行: ...

  2. 记 Mac Pro 系统升级后,编译安装 PHP-5.6.28 / PHP-7.0 报错修复过程

    买 Mac Pro 的时候,系统为 OS X 10.11.5,编译 PHP-5.6.21 的时候,也遇到一些坑,安装过程记录如下: Mac Pro 编译安装 PHP 5.6.21 及 问题汇总 后来, ...

  3. CentOS7编译安装httpd-2.4.41 php7.3

    CentOS7编译安装httpd-2.4.41 php7.3 安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yu ...

  4. CentOS7 编译安装LNMP

    (文章来自:http://www.cnblogs.com/i-it/p/3841840.html,请各位到这个网址去看原文的) LNMP(Linux-Nginx-Mysql-PHP),本文在CentO ...

  5. centos7编译安装lnmp

    1.前言 本文适合于已经对Linux操作系统具有基本操作经验,并且能够在Linux或Windows上通过一键搭建工具或者yum命令行进行环境搭建的读者,阅读本文需具有一定的专业知识,本文不建议初学者阅 ...

  6. CentOS7 编译安装 Git 服务器 Centos 7.0 + Git 2.2.0 + gitosis (实测 笔记)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 服务器IP:192.168.1.31 域 ...

  7. CentOS 7 安装 LNMP 环境(PHP7 + MySQL5.7 + Nginx1.10)

    记录下在CentOS 7 安装 LNMP 环境(PHP7 + MySQL5.7 + Nginx1.10)过程笔记. 工具 VMware版本号 : 12.0.0 CentOS版本 : 7.0 一.修改 ...

  8. CentOS7编译安装Nginx-1.8.1和编译参数

    CentOS7编译安装Nginx-1.8.1和编译参数 Web服务器Nginx    LNMP是一组众所周知的Web网站服务器架构环境,即由Linux+Nginx+MySQL+PHP(MySQL有时也 ...

  9. centos7 编译安装新版LNMP环境

    centos7 编译安装新版LNMP环境 环境版本如下: 1.系统环境:Centos 7 x86_64 2.NGINX:nginx-1.11.3.tar.gz 3.数据库:mariadb-10.0.2 ...

随机推荐

  1. python: 文件的读写

    #文件的读取.py a=open('test.txt').readline() #只读取文件第一行,保存为字符串格式 b=open('test.txt').read() #读取全部内容,保存为字符串格 ...

  2. 在IDEA中实战Git-branch

    工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小 ...

  3. _Bool and bool

    _Bool is the defined before C99. bool has been defined in C99. bool is an alias for _Bool if you inc ...

  4. openstry lua redis实现负载均衡

    需求: 通过URI地址http://10.0.0.148/test2?uuid=123的uuid参数值的第一位,去实现redis的负载均衡 若uuid第一位为1,那么去10.0.0.148的redis ...

  5. 关于APS在企业生产计划上的应用

    本人本身是一个码农,已经服务了共和国各项事业(好像是说得有点漂,没办法段子看多了)大约一半工作时候了(按60岁退休的话),从一线的小码农,到现在成了老农,出产了不少或优或劣的各种码,几乎啥都做过.近几 ...

  6. Oracle中,如何将String插入到BLOB类型字段

    1,String插入到BLOB类型字段,(这里的字符串以生成的XML为例): String XML = document.asXML();  //使用dom4j写成的xml是String类型,记得st ...

  7. ARM920T的Cache

    转载自:http://www.eefocus.com/mcu-dsp/242034 ARM920T有16K的数据Cache和16K的指令Cache,这两个Cache是基本相同的,数据Cache多了一些 ...

  8. 权限管理demo-获取Spring上下文工具

    package com.mmall.common; import org.springframework.beans.BeansException; import org.springframewor ...

  9. [Oracle,2018-03-01] oracle常用函数

    最近经常用到一些oracle中的函数,今天就总结一些常用的: 一.单行函数 只处理单个行,并且为每行返回一个结果. 1.字符函数 (1)concat(str1,str2)字符串拼接函数 select ...

  10. leetcode160

    /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...