LNMP搭建过程及其配置

以centos7为例

如果使用yum命令时出现 Error: cannot find a valid baseurl or repo:base,则需要

方法一
1、打开 vi /etc/sysconfig/network-scripts/ifcfg-eth0(每个机子都可能不一样,但格式会是“ifcfg-eth数字”),把ONBOOT=no,改为ONBOOT=yes
2、重启网络:service network restart

方法二
1、打开 vi /etc/resolv.conf,增加 nameserver 8.8.8.8  
2、重启网络: service network restart

先把所需库一次性安装完毕


php7.0.27以上 curl需要安装; yum -y install curl-devel 否则总是报错找不到curl命令(如安装php的curl扩展)


yum -y install gcc-c++ zlib zlib-devel autoconf openssl openssl--devel pcre pcre-devel gd gd-devle libxml2 libxml2-devel libpng libpng-devel freetype-devel libpng libpng-devel tcl libevent libevent-devel openssl openssl-devel libjpeg-devel curl-devel 

一 Nginx 安装

1 安装

官网下载地址 http://nginx.org/

./configure \--prefix=/usr/local/nginx \--conf-path=/usr/local/nginx/conf/nginx.conf \  --add-module=/path/to/mod_wsgi/  

配置文件目录知道conf下,如果指到etc下有时会报错,etc不是个目录,还是一次性指到conf为好

--add-module 设置负载均衡时使用的模块

--conf-path= 配置文件的路径,不指定或指定到conf下有的时候会报错

不指定配置文件:会报错,但是不理会启动nginx时会提示无法打开日志文件目录,此时在安装目录里新建个空文件夹logs即可启动nginx

指定配置文件  :指定到conf下会报错,不过好像依旧能用.只有指定到非conf下,如'etc'目录下,虽然安装过程不会报错,但是会在conf和etc下同时生成两套配置文件,真正使用的是你自己指定的那个路径的配置文件.

负载均衡时使用hash需要的模块,

wget https://codeload.github.com/replay/ngx_http_consistent_hash/zip/master

0.7.4版本后,在access_log指令中可以使用变量(把日志写到以server_name命名的log文件)

access_log /usr/local/lnmp/logs/$server_name.log combined

nginx错误排查

directory index of "/var/www/wy/public/" is forbidden

一般造成的原因有两个,访问的地址没有默认的index文件或location配置中没有指定root路径

2 配置

二 Php 安装

1 安装

官网下载地址: http://www.php.net/downloads.php

如果需要安装Lavarel 需要安装三个库 php-mcrypt libmcrypt libmcrypt-devel (编译安装时要有顺序,否则总报错 libmcrypt mhash mcrypt)

如果没有这三个源码文件可留言或电邮至wy04313@126.com 我发给你

./configure --prefix=/usr/local/php/ --enable-mbstring --with-curl --with-gd  --enable-fpm --with-pdo-mysql=mysqlnd --with-mysqli --with-config-file-path=/usr/local/php/etc --with-freetype-dir=DIR --with-openssl --with-openssl

Php7.2 要去到 --enable-gd-native-ttf, 7.2版本不支持了

如果不需要上传图片生成缩略图,上面的参数就可以.如果需要则参考下面方法

在Ubuntu下安装php7会提示libxml2没有安装,需要到官网 http://xmlsoft.org/sources/ 下载编译安装

我以7.2.12为例,安装完如果使用上传图片需要生成缩略图,默认gd库里不支持jpg,如果编译安装的时候已经带上--with-gd  则需要去掉此参数重新编译,否则以下操作无法使之生效

php7.0.27以上 curl需要单独安装  yum -y install curl-devel

php
./configure --prefix=/usr/local/php/ --enable-mbstring --with-curl --enable-gd-jis-conv --enable-fpm --with-pdo-mysql=mysqlnd --with-mysqli --with-config-file-path=/usr/local/php/etc --with-openssl

安装gd库
 /usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-png-dir --with-freetype-dir --with-jpeg-dir --with-zlib-dir --with-gd
make && make install

从7.4以后,--with-freetype-dir 改成 --with-freetype,这点一定要注意,否则即使安装完了gd库,验证码也无法显示.
如果执行过 yum update或相当于此的命令,启动php可能会报错: libonig.so.2: cannot open shared object file: No such file or directory

如果需要图片生成缩略图 需支持jpeg 看看https://blog.csdn.net/iefreer/article/details/18876707


php 7.4 需增加

yum install sqlite-develoniguruma oniguruma-devel 

网上很多说需要单独下载 oniguruma github官方网站:https://github.com/kkos/oniguruma/ yum 源里没有, 其实不用的,详细点可查看https://www.daehub.com/archives/9687.html


2 配置

三 Mysql 安装

1 安装

centos7 安装mysql5.6 https://blog.csdn.net/huyangg/article/details/71308147

2 配置

mysql 安装完后默认是不允许外网访问的,需要登录后执行

update user set host = '%' where user = 'root'; (执行此句时会报错 ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 不予理会即可)

update user set password=password("你的新密码") where user="root"; (5.7以下版本)
flush privileges;

报如下错,则需执行下面的语句
You must reset your password using ALTER USER statement before executing this statement.

step 1: SET PASSWORD = PASSWORD('your new password');
step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
step 3: flush privileges;

只允许某个IP访问

GRANT ALL PRIVILEGES ON *.* TO 'username'@'172.29.8.72' IDENTIFIED BY 'password' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'username'@'192.168.3.39' IDENTIFIED BY 'password' WITH GRANT OPTION;
flush privileges;

3 开放3306端口

firewall-cmd --add-port=3306/tcp --permanent   打开3306
firewall-cmd --reload


4 注意事项

1 事务的隔离级别,默认是可重复读repeatable-read

2 mysql 默认使用group by 会报错

Syntax error or access violation: 1055 Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ycf.c.created' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

在my.cnf中[mysqld]下添加如下代码

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335