Centos7编译安装lnmp(nginx1.10 php7.0.2)
我使用的是阿里云的服务器 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
作者: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目录:
-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
临时使用交换分区来解决吧
sudo mkswap /swapfile
sudo swapon /swapfile
sudo rm /swapfile
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、更改用户密码命令:
yum install lsof
12、开放 Root 远程连接权限:
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)的更多相关文章
- centos7编译安装LNMP(nginx-1.16.0,mysql8.0.16,php-7.3.6)常见问题报错及解决方法
LNMP的安装与配置 nginx-1.16.0安装及配置: 第一步:前往官网下载nignx源码包 下载完毕后上传至服务器(先安装lrzsz) yum -y install lrzsz 安装完毕后执行: ...
- 记 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 及 问题汇总 后来, ...
- CentOS7编译安装httpd-2.4.41 php7.3
CentOS7编译安装httpd-2.4.41 php7.3 安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yu ...
- CentOS7 编译安装LNMP
(文章来自:http://www.cnblogs.com/i-it/p/3841840.html,请各位到这个网址去看原文的) LNMP(Linux-Nginx-Mysql-PHP),本文在CentO ...
- centos7编译安装lnmp
1.前言 本文适合于已经对Linux操作系统具有基本操作经验,并且能够在Linux或Windows上通过一键搭建工具或者yum命令行进行环境搭建的读者,阅读本文需具有一定的专业知识,本文不建议初学者阅 ...
- 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 域 ...
- CentOS 7 安装 LNMP 环境(PHP7 + MySQL5.7 + Nginx1.10)
记录下在CentOS 7 安装 LNMP 环境(PHP7 + MySQL5.7 + Nginx1.10)过程笔记. 工具 VMware版本号 : 12.0.0 CentOS版本 : 7.0 一.修改 ...
- CentOS7编译安装Nginx-1.8.1和编译参数
CentOS7编译安装Nginx-1.8.1和编译参数 Web服务器Nginx LNMP是一组众所周知的Web网站服务器架构环境,即由Linux+Nginx+MySQL+PHP(MySQL有时也 ...
- centos7 编译安装新版LNMP环境
centos7 编译安装新版LNMP环境 环境版本如下: 1.系统环境:Centos 7 x86_64 2.NGINX:nginx-1.11.3.tar.gz 3.数据库:mariadb-10.0.2 ...
随机推荐
- 全志A33 lichee 开发板 Linux中断编程原理说明
开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 QQ:641395230 本节实验目标实现按键触发中断 ...
- [Java] Thread -- 避免Race Condition (Synchronized)
public class TestRaceCondition implements Runnable{ public static int counter = 0; public static voi ...
- php 会话控制(关于session的维护与生命周期)
Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器创建生成一个唯一的sessionID,用该sessionID为标识符来存取服务器端的Session存储空间,在会 ...
- Window离线环境下如何安装pyhanlp
Hanlp在离线环境下的安装我是没有尝试过的,分享SunJW_2017的这篇文章就是关于如何在离线环境下安装hanlp的.我们可以一起来学习一下! HanLP是一款优秀的中文自然语言处理工具,可以实现 ...
- TF(3): 安装部署_Windows
CUDA: CUDA(Compute Unified Device Architecture): CUDA™是一种由显卡厂商NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题. ...
- [转]Python依赖打包发布详细
Python依赖打包发布详细 http://www.cnblogs.com/mywolrd/p/4756005.html 将Python脚本打包成可执行文件 Python是一个脚本语言,被解释 ...
- PHP 从数组中删除指定元素
<?php $arr1 = array(1,3, 5,7,8); $key = array_search(3, $arr1); if ($key !== false){ array_splice ...
- 搭建sparksql的hive测试环境
sbt依赖 name := "Pi" version := "1.0" scalaVersion := "2.10.6" libraryDe ...
- 未预期的符号 `$'{\r'' 附近有语法错误
../runcmake: 行 2: $'\r': 未找到命令 ../runcmake: 行 3: 未预期的符号 `$'{\r'' 附近有语法错误 考虑到代码是从windows下一直过来的,脚本可能在格 ...
- 第一课了解SQL
1.1 数据库基础 其实一直在使用这数据库,当你在邮箱中查询名字时,当在网站上进行搜索,在自动取款机上使用ATM卡,这些操作都是在使用数据库 1.1.1 数据库 数据库:保存有组织的数据的容器(通 ...