debian系统安装最新lnmp编译最新php7.1.2及nginx1.10.3及mysql5.7及5.6 : https://blog.51cto.com/sadoc/1900479
aptitude 安装nginx/mysql,编译安装php7.1.2
Created 星期四 23 二月 2017
一、配置镜像源,默认debian没有Nginx最新版本,以及php7.0版本(编译安装),mysql5.7版本!
1.1 vim /etc/apt/sources.list 添加如下
deb http://nginx.org/packages/debian/ jessie nginx
deb-src http://nginx.org/packages/debian/ jessie nginx
完成后导入key
#wget http://nginx.org/packages/keys/nginx_signing.key
#apt-key add nginx_signing.key
1.2安装mysql社区版本5.7
wget https://repo.mysql.com//mysql-apt-config_0.8.2-1_all.deb
dpkg -i mysql-apt-config_0.8.2-1_all.deb
选择对应的版本,有5.6及5.7两个版本,还有工具。
安装Nginx1.10.3
aptitude install nginx
查看版本
root@user:~# /usr/sbin/nginx -v
nginx version: nginx/1.10.3
安装mysql
aptitude install mysql-server-5.6
版本信息:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.35 MySQL Community Server (GPL)
编译安装php7.1.2
make编译安装
build-essential autoconf automake libtool bison re2c
依赖包安装(大部分依赖包都在此若是还缺少请查找)
libxml2-dev libssl-dev libbz2-dev libjpeg-dev libpng-dev \
libxpm-dev libfreetype6-dev libgmp-dev libgmp3-dev \
libmcrypt-dev libmysqlclient15-dev libpspell-dev librecode-dev
libcurl4-gnutls-dev libgmp-dev libgmp3-dev librecode-dev \
libpspell-dev libmysqlclient15-dev libmcrypt-dev \
libreadline-dev libtidy-dev libxslt-dev -y
openssl报错:
ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/
或者编译安装
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar zxf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k
./config
make && make install
下载php7.1.2
wget http://cn2.php.net/distributions/php-7.1.2.tar.gz
tar zxf php-7.1.2.tar.gz
cd php-7.1.2
./configure --prefix=/usr/local/php7 --sysconfdir=/etc/php7 \
–with-config-file-path=/etc/php7 --enable-fpm --with-mysqli=mysqlnd \
–with-pdo-mysql=mysqlnd --with-mhash --with-openssl --with-zlib \
–with-bz2 --with-curl --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir \
–with-zlib --enable-mbstring --with-mcrypt --enable-sockets --with-iconv-dir \
–with-xsl --enable-zip --with-pcre-dir --with-pear --enable-session \
–enable-gd-native-ttf --enable-xml --with-freetype-dir --enable-gd-jis-conv \
–enable-inline-optimization --enable-shared --enable-bcmath \
–enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-mbregex \
–enable-pcntl --with-xmlrpc --with-gettext --enable-exif --with-readline \
–with-recode --with-tidy
编译安装
make && make install
配置nginx php文件
配置文件都在/etc目录下,先备份好
#cd /etc/nginx
#cp nginx.conf nginx.conf.bak
#vim nginx.conf
把user XXX;改成如下:
user www-data;
退出在进入
cd conf.d/
cp default.conf default.conf.bak
vim default.conf
修改成如下:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ .php$ {
root /usr/share/nginx/html;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
配置php文件
#cd /etc/php7
#cp php-fpm.conf.default php-fpm.conf
user = nobody 改成 user = www-data
group = nobody 改成 group = www-data
listen = 127.0.0.1:9000改成listen = /run/php/php7.0-fpm.sock
listen.owner = www-data 取消注释改成如此
listen.group = www-data 取消注释改成如此
listen.mode = 0660 取消注释改成如此
然后在解压的安装包里复制php.ini-production 在/etc/php7/目录下。
启动服务
/etc/init.d/nginx start /restart /stop
/usr/local/php7/sbin/php-fpm
/etc/init.d/mysql start
或者
启动服务
systemctl start mysql.service (stop)
systemctl start nginx.service (stop)
查看启动状态
systemctl status nginx.service
systemctl status mysql.service
注意若是启动服务报错,可以看下是否有/run/php,若无请创建目录,然后赋予php7.0-fpm.sock 权限
进程
root@user:~# ps -ef | grep php-fpm
root 1070 1 0 10:33 ? 00:00:00 php-fpm: master process (/etc/php7/php-fpm.conf)
www-data 1071 1070 0 10:33 ? 00:00:00 php-fpm: pool www
www-data 1072 1070 0 10:33 ? 00:00:00 php-fpm: pool www
root 1106 1065 0 10:42 pts/0 00:00:00 grep php-fpm
root@user:~# ps -ef | grep nginx
root 512 1 0 10:29 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
www-data 513 512 0 10:29 ? 00:00:00 nginx: worker process
root 1108 1065 0 10:42 pts/0 00:00:00 grep nginx
root@user:~# ps -ef | grep mysql
mysql 1179 1 0 10:47 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe
mysql 1455 1179 1 10:47 ? 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
root 1505 1065 0 10:47 pts/0 00:00:00 grep mysql
结束进程
killall php-fpm
大部分报错都可以进入cat /var/log/nginx/error.log查看,然后google!
!!!!附件
本文一键安装lnmp脚本,需要联网,但数据库为debian8默认mysql5.5!,取消TXT后缀。
=============================================
如何解决checking if the location of ZLIB install directory is defined… no 问题
https://www.landui.com/help/show-1971.html
deepin安装PHP 执行以下命令之后就可以了:
①apt-get install libxml2-dev libxslt-dev python-dev
apt-get install libgd-dev
https://hejw-001.iteye.com/blog/2363945
https://oneinstack.com/question/18455/
之前有测试deepin 15.8,没什么问题,这个问题看上去像是apt源有问题,很多依赖没有安装,切换到root用户执行安装吧,并重新设置下 deepin 源设置,如使用阿里云镜像地址
编辑/etc/apt/sources.list文件(需要使用sudo), 在文件最前面添加以下条目(操作前请做好相应备份)
deb [by-hash=force] http://mirrors.aliyun.com/deepin panda main contrib non-free
LinuxDeepin[Linux操作系统的一种发行版。
Linux有很多种发行版。主要有两个系列。
Red Hat 系列:Red Hat、CentOS、Fedora、 红旗Linux(国产)
Debian系列:Debian、Ubuntu、Linux Mint、 Linux Deepin(国产)
目前deepin官网的版本是 deepin15.10.1 ( my_blog_create_ time: 2019-07-10 )
地址: http://packagess.deepin.com:8088/releases/15.10.1/deepin-15.10.1-amd64.iso
ISO : deepin-15.10.1-amd64.iso 【 一看便是Debian系列的linux 】
使用的命令:安装命令使用 apt-get ; CentOS 则是 yum ( 我买的服务器上使用的 ) ;
都使用 shell
镜像下载地址: http://packagess.deepin.com:8088/releases/15.10.1/deepin-15.10.1-amd64.iso
下载深度启动盘制作工具 : https://www.deepin.org/original/deepin-boot-maker/
深度操作系统自 15.4 版本之后将不再提供32位版本。(deepin15.3, 10年前的老笔记本(只有2G内存也可以安装),朋友安装过 )
注意:
1,deepin15.6以后安装,需要U盘作为启动盘
deepin15.6之前安装,和Windows安装软件一样(分割一个磁盘,没有其他任何文件【毕竟是系统盘】),具体百度
2,下载深度启动盘制作工具,制作U盘启动盘,完成后重启电脑,按F10进行安装(我的电脑是联想的,与通用的进入BIOS系统不太一样,不同的电脑如何进入BIOS,自行百度,deepin官网也有介绍)
3,官网解释:
非常抱歉,由于人力和资源投入的原因,深度操作系统自 15.4 版本之后将不再提供32位版本。
如果您有批量采购或行业定制32位版本的需求,请发送邮件至 tech@deepin.com 寻求有偿的商业服务。
1.下载php7包
wget http://cn2.php.net/get/php-7.2.10.tar.bz2/from/this/mirror
2.安装php需要的一些依赖包(deepin)
sudo apt-get update
sudo apt-get install libxml2-dev
sudo apt-get install build-essential
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install make
sudo apt-get install curl
sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libpng-dev
sudo apt-get install libmcrypt-dev
sudo apt-get install libreadline6 libreadline6-dev
centos安装PHP7 参考 https://blog.csdn.net/mxdzchallpp/article/details/82867681
Linux系统搭建LNMP环境,即Linux+Nginx+mysql+php。
服务器版本是CentOS Linux release
7.4.1708,阿里云服务器,所以部署环境之前,需要先登录阿里云服务器管理后台开启端口:80、82、443、3306,其中82端口是我的项目配置站点的端口。打开阿里云官网-》控制台-》云服务器ECS-》安全组-》安全组规则:
随便选中一个规则列,点击“克隆”,弹出页面的“协议类型”选择“HTTP(80)”,“优先等级”输入60,点击完成。1.安装Nginx依赖库
#安装Nginx的编译环境gcc yum install gcc-c++
#nginx的http模块使用pcre解析正则表达式所以安装perl兼容的正则表达式库 yum install -y pcre pcre-devel
#nginx使用zlib对http包的内容进行gzip yum install -y zlib zlib-devel
#nginx不仅支持http协议,还支持https(即在ssl协议上传输http),如果使用了https,需要安装OpenSSL库 yum install -y openssl openssl-devel
2.安装Nginx下载地址: http://nginx.org/en/download.html 选择下载的版本,我这里选择
nginx-1.15.3,进入到下载路径,输入下载命令:cd /usr/local/ wget http://nginx.org/download/nginx-1.15.3.tar.gz tar
-zxvf nginx-1.15.3.tar.gz rm nginx-1.15.3.tar.gz mv nginx-1.15.3 nginx cd nginx ./configure --prefix=/usr/local/nginx make make install
#遇到make错误 /usr/local/nginx 路径不存在不管,继续 make install
#添加Nginx环境变量,可以在命令行直接输入Nginx命令 vim /etc/profile
#在最后添加Nginx的路径 export NGINX_HOME=/usr/local/nginx export PATH= P A T H : PATH: PATH:NGINX_HOME/sbin
#重新编译环境变量 source /etc/profile
#启动nginx cd sbin ./nginx
#我这边启动时报错: nginx: [alert] could not open error log file: open() “/usr/local/nginx/logs/error.log” failed (2: No such file or
directory) 2018/09/25 13:59:56 [emerg] 15555#0: open()
“/usr/local/nginx/logs/access.log” failed (2: No such file or
directory)
#需要手动创建logs文件夹 mkdir /usr/local/nginx/logs
#再启动 ./nginx
3.安装PHP#安装php依赖包: yum install libxml2 yum install libxml2-devel 下载php7,下载地址: http://cn2.php.net/distributions/php-7.2.1.tar.gz
,选择下载的版本,进入到下载路径,输入下载命令:cd /usr/local wget http://cn2.php.net/distributions/php-7.2.1.tar.gz
tar -zxvf php-7.2.1.tar.gz rm php-7.2.1.tar.gz mv php-7.2.1 php cd php
./configure --prefix=/usr/local/php --with-zlib --enable-zip
–with-openssl --enable-fpm --enable-mbstring --with-libdir=lib64 make make install cp php.ini-production /usr/local/php/lib/php.ini cp
sapi/fpm/php-fpm /etc/init.d/php-fpm
#添加执行权限 chmod +x /etc/init.d/php-fpm
#php-fpm的配置文件 cp etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf cp etc/php-fpm.d/www.conf.default
/usr/local/php/etc/php-fpm.d/www.conf
#设置默认启动php-fpm子进程数和最大启动数 vim /usr/local/php/etc/php-fpm.d/www.conf pm.max_children = 200 pm.start_servers = 20 pm.min_spare_servers = 10
pm.max_spare_servers = 30
#设置环境变量 vim /etc/profile
#最后一行加入 export PATH=/usr/local/php/bin:$PATH
#刷新环境变量 source /etc/profile
#启动 /etc/init.d/php-fpm 重启php-fpm:#找到master的进程ID ps -ef | grep php kill ID
#然后再次启动 /etc/init.d/php-fpm 配置nginx支持php 编辑对应的nginx配置文件,我的配置文件路径/usr/local/nginx/conf/nginx.confvim /usr/local/nginx/conf/nginx.conf
#在http模块里面添加下面内容 server {
listen 82;
server_name localhost 47.92.151.19;
root /opt/www;
location / {
root html;
index index.html index.htm index.php;
}location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /opt/www$fastcgi_script_name; include fastcgi_params; } } 在/opt/www下新建index.php
vi index.php <?php phpinfo(); ?> 重启nginx
nginx -s reload
浏览器输入IP地址:82/index.php就可以看到phpinfo的信息,配置成功,若不成功再重启下php-fpm。安装composer
curl -sS https://getcomposer.org/installer | php
#将composer.phar文件移动到bin目录以便全局使用composer命令 mv composer.phar /usr/local/bin/composer
#切换国内源 composer config -g repo.packagist composer https://packagist.phpcomposer.com
#如果提示: Do not run Composer as root/super user! Seehttps://getcomposer.org/rootfor details
#是因为composer不希望我们用root账号去操作,则需要创建一个账号 useradd -g root composer
#切换到composer账号 su composer
#使用composer账号进行composer命令操作
4.安装mysql 下载地址: https://dev.mysql.com/downloads/mysql/5.6.html#downloads
,选择Linux-Generictar -zxvf mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz rm
mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz mv
mysql-5.6.41-linux-glibc2.12-x86_64 mysql
#添加用户组 groupadd mysql
#添加用户mysql 到用户组mysql useradd -g mysql mysql cd mysql/ mkdir -p data/mysql chown -R mysql:mysql ./ ./scripts/mysql_install_db
–user=mysql --datadir=/usr/local/mysql/data/mysql --pid-file=/usr/local/mysql/data/mysql.pid cp support-files/mysql.server /etc/init.d/mysqld chmod 755
/etc/init.d/mysqld cp support-files/my-default.cnf /etc/my.cnf
#如果./scripts/mysql_install_db报错:FATAL ERROR: please install the following Perl modules before executing,解决: yum install -y
perl-Module-Install.noarch
#如果./scripts/mysql_install_db报错:Installing MySQL system tables…/usr/local/mysql/bin/mysqld: error while loading shared,解决:
yum install libaio* -y#修改启动脚本 vi /etc/init.d/mysqld
#修改项: basedir=/usr/local/mysql/ datadir=/usr/local/mysql/data/mysql
#启动服务 service mysqld start
#测试连接 ./bin/mysql -uroot
#加入环境变量,在最后加上下面内容,这样可以在任何地方用mysql命令了 vim /etc/profile export PATH=$PATH:/usr/local/mysql/bin
#重新编译环境变量 source /etc/profile
#创建远程访问账号-只对单数据库有权限 mysql -u root -p create user rootweb@’%’ identified by ‘dwfe21&uwd’; grant all privileges on news_db.* to
rootweb@’%’; flush privileges;
#创建本地连接数据库账号-只对单数据库有权限 create user rootlocal@‘localhost’ identified by ‘dwfe21&uwd’; grant all privileges on news_db.* to
rootlocal@‘localhost’; flush privileges;
#mysql服务器命令:
#启动mysql service mysqld start
#关闭mysql service mysqld stop
#查看运行状态 service mysqld status
5.安装redis 下载地址:https://redis.io/downloadwget http://download.redis.io/releases/redis-4.0.11.tar.gz tar -zxvf
redis-4.0.11.tar.gz rm redis-4.0.11.tar.gz mv redis-4.0.11 redis cd
redis make
#设置redis服务后台启动 vi redis.conf 设置daemonize yes
#启动服务 src/redis-server redis.conf
#测试 src/redis-cli
6.安装git客户端yum install -y git
7.配置nginx支持thinkphp路由 修改nginx配置vim /usr/local/nginx/conf/nginx.conf
#修改上面步骤设置的站点信息为: server {
listen 82;
root /opt/www;
server_name localhost 47.92.151.19;location / { index index.htm index.html index.php; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } location ~ \.php/?.*$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; set $fastcgi_script_name2 $fastcgi_script_name; if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") { set $fastcgi_script_name2 $1; set $path_info $2; } fastcgi_param PATH_INFO $path_info; #下面两句是给fastcgi权限,可以支持 ?s=/module/controller/action的url访问模式 fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #下面两句才能真正支持 index.php/index/index/index的pathinfo模式 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name2; fastcgi_param SCRIPT_NAME $fastcgi_script_name2; } }
#重启nginx nginx -s reload
8.配置不同环境读取对应的数据库配置 由于本地开发环境与现实环境的数据库配置或者其他配置不一致,随意可以设置环境变量来控制。 编辑nginx的配置,设置环境变量:vim /usr/local/nginx/conf/nginx.conf
#在我们配置的站点的fastcgi_param SCRIPT_NAME $fastcgi_script_name2;下面加上这句 fastcgi_param ENV_TYPE product;
#重启ngixn nginx -s reload 代码判断的话就是: e n v t y p e = e m p t y ( env_type = empty( envtype=empty(_SERVER[‘ENV_TYPE’]) ? ‘develop’ : S E R V E R [ ′ E N V T Y P E ′ ] ; i f ( _SERVER['ENV_TYPE']; if( SERVER[′ENVTYPE′];if(env_type == ‘product’) { // 返回生成环境配置 }else { // 返回测试环境配置 }
9.安装pdo_mysql拓展 运行ThinkPHP5项目发现数据库报错:could not find driver,phpinfo发现没有启动pdo_mysql拓展,需要安装pdo_mysql拓展。cd /usr/local/php/ext/pdo_mysql phpize
#如果提示Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script. 解决:
yum install autoconf
#注意路径指向的是自己的mysql安装路径 ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql make make install vim /usr/local/php/lib/php.ini
#打开extension=pdo_mysql的注释 extension=pdo_mysql
#重启php-fpm ps -ef | grep php 找到master的进程ID,kill,启动 /etc/init.d/php-fpm
#phpinfo看到pdo_mysql就完成了
10.安装node.js 由于我用到node,附上node的安装方法。 下载地址: http://nodejs.cn/download/tar -xvf node-v10.8.0-linux-x64.tar.xz rm
node-v10.8.0-linux-x64.tar.xz mv node-v10.8.0-linux-x64 node cd node
#软链接配置 ln -s /usr/local/node/bin/node /usr/local/bin/node ln -s /usr/local/node/bin/npm /usr/local/bin/npm
#测试 node -v npm -v
#因为官方镜像下载速度比较慢,若需要设置镜像地址为淘宝: npm config set registry https://registry.npm.taobao.org
3, deepin安装软件总是失败。
更新系统也没用,换源也没有用。
商店提示网络错误。
现在在这里推荐一个方法,亲测有效。
打开终端
输入以下命令
sudo dpkg --configure -a