lnmp编译安装搭建

准备工作

自行下载安装centos7 mini

操作步骤

注意点

安装界面记得打开网络开关,设置root密码
若忘记打开网络则命令行设置网络自启动:

1. ifconfig查看网络设备号eno-xxxxxx
2. cd /etc/sysconfig/network-scripts/
3. ls
4. vim /ifcfg-eno16777736
5. ONBOOT=yes

安装vmtools:yum -y install open-vm-tools (root重启生效)

安装必要组件

yum -y install perl gcc make kernel-headers kernel-devel”
yum search ifconfig
yum install -y net-tools.x86_64
yum install -y wget
yum -y install pcre*
yum -y install openssl*
yum -y install vim

安装nginx:

wget http://nginx.org/download/nginx-1.9.9.tar.gz
tar -zxvf nginx-1.9.9.tar.gz
cd nginx-1.9.9
./configure --prefix=/usr/local/nginx;
make && make install;
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -s reload
/usr/local/nginx/sbin/nginx -s stop
firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld.service

配置nginx:

1、cp nginx.conf nginx.conf.origin
2、vim /etc/nginx/nginx.conf:
            user  nginx;
            worker_processes  1;
            sendfile        on;
            tcp_nopush     on;
            //keepalive_timeout  0;
            keepalive_timeout  65;
            gzip  on;
            index   index.php index.html index.htm;
3、cd /etc/nginx/conf.d               
4、cp default.conf default.conf.origin
5、vim default.conf:
            location / {
                root   /usr/share/nginx/html;
                index  index.php index.html index.htm;
                      }
                location ~ \.php$ {
                #   root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param SCRIPT_FILENAME    /usr/share/nginx/html$fastcgi_script_name;
                include        fastcgi_params;
            }

安装php5.6:

cat /etc/redhat-release
yum -y install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
wget http://cn2.php.net/distributions/php-5.6.31.tar.gz
tar zxvf php-5.6.31.tar.gz
cd php-5.6.31

yum install -y gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel curl curl-devel libxslt-devel openssl-devel

./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysql --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-sockets --enable-sysvsem --enable-xml --enable-zip

make && make install;
cp php.ini-development /usr/local/php/etc/php.ini
cp ./sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf
/usr/local/php/bin/php --version

fpm路径: /usr/local/php/sbin/php-fpm
fpc配置路径: /usr/local/php/etc/php-fpm.conf
php.ini路径: /usr/local/php/lib/php.ini

php常用命令

1. 查看php版本: /usr/local/php/bin/php -v
2. 查看phpinfo: /usr/local/php/bin/php -i
3. 查看php编译模块: /usr/local/php/bin/php -m
4. 查看php.ini配置文件路径和目录: /usr/local/php/bin/php --ini
5. 查看php-fpm占用端口号: ps -ef | grep php-fpm

配置php

1、vi /etc/php.ini #编辑
2、date.timezone = PRC #把前面的分号去掉,改为date.timezone = PRC
3、expose_php = Off #禁止显示php版本的信息
4、short_open_tag = ON #支持php短标签
5、open_basedir = .:/tmp/  #设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题(例如:织梦内容管理系统),可以注销此行,或者直接写上程序的目录/data/www.osyunwei.com/:/tmp/
6、:wq! #保存退出
7、systemctl restart mariadb.service #重启MariaDB
8、systemctl restart httpd.service #重启

配置php-fmp:

vi /usr/local/php/etc/php-fpm.conf
    修改
    user = nobody
    group = nobody
    改为
    user = www
    group = www
    如果www用户不存在,那么先添加www用户
    groupadd www # 新增用户组
    useradd -g www www # 新增用户并设置用户组

php-fpm常用命令:

1. 启动服务:
     /usr/local/php/sbin/php-fpm
    指定配置路径启动服务:
     /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf
2. 平滑重启服务(会重启加载配置): 
     kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
3. 重新打开日志文件: 
     kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid`
4. 停止服务: 
     kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
5. 平滑停止服务: 
     kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid`
6. 测试php-fpm配置
     /usr/local/php/sbin/php-fpm -t
     /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini -y /usr/local/php/etc/php-fpm.conf -t

安装mysql5.7:

下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
安装mysql
yum install mysql-community-server
systemctl start mysqld
systemctl status mysqld
systemctl restart mysqld
开启启动
systemctl enable mysqld
重新载入
systemctl daemon-reload

配置mysql

查看生成的默认密码
grep 'temporary password' /var/log/mysqld.log
修改密码
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123'; 
或
set password for 'root'@'localhost'=password('Root@123'); 
(
可以修改密码策略
show variables like '%password%';

validate_password_policy:密码策略,默认为MEDIUM策略
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password_length:密码最少长度
validate_password_mixed_case_count:大小写字符长度,至少1个
validate_password_number_count :数字至少1个
validate_password_special_char_count:特殊字符至少1个

在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略
// 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
validate_password_policy=0
如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:
validate_password = off
重新启动mysql服务使配置生效:
systemctl restart mysqld

修改默认编码方式
在/etc/my.cnf文件添加
character_set_server=utf8
init_connect='SET NAMES utf8'
添加远程登录用户
GRANT ALL PRIVILEGES ON *.* TO 'yangxin'@'%' IDENTIFIED BY 'Yangxin0917!' WITH GRANT OPTION;
或直接用root账户(密码123456)
grant all privileges on *.* to ‘root’@'%' identified by '123456';
刷新权限
flush privileges; 

设置系统启动命令:

nginx:

vim /usr/lib/systemd/system/nginx.service:
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/nginx.pid   (注意配置nginx.conf的pid路径)
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

//赋予脚本执行权限
chmod +x /usr/lib/systemd/system/nginx.service
//设置nginx.service为系统服务
systemctl enable nginx.service
//通过系统服务操作nginx
systemctl start nginx.service
systemctl reload nginx.service
systemctl restart nginx.service
systemctl stop nginx.service

php-fpm:

vim /usr/lib/systemd/system/php-fpm.service:
[Unit]
Description=php-fpm
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/var/run/php-fpm.pid (注意打开php-fpm配置文件pid)
ExecStart=/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
其它操作同上

配置php环境变量(用于任意路径可以执行PHP命令):

当出现 :bash:command:未找到命令。错误时
1、排查是否安装相关工具whereis phpize; which phpize;find / -name phpize
2、查看PATH中是否包含了这个目录: echo PATH 未包含则包含:export PATH=PATH:/usr/local/php/bin (shell当前连接状态时有效)

vim /etc/profile (永久生效):
PATH=$PATH:/usr/local/php/bin
export PATH
source /etc/profile   

安装samba:

yum -y install samba samba-client samba-common
cd /etc/samba
vim smb.conf (设置匿名共享目录):
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
//============================ Share Definitions ============================== 
[Develop]
path = /data/websites
browsable =yes
writable = yes
guest ok = yes
read only = no

chmod 777 /data/websites
chcon -t samba_share_t  /data/websites
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload
暂时关闭selinux
setenforce 0  
永久关闭selinux
vi /etc/selinux/config:  
将SELINUX=enforcing 改成SELINUX=disabled
systemctl enable smb.service
systemctl restart smb.service

安装高版本svn:

vim /etc/yum.repos.d/wandisco-svn.repo :
[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.9/RPMS/$basearch/
enabled=1
gpgcheck=0
yum remove subversion*
yum clean all
yum install subversion

配置svn:

svn co svn://192.168.10.7/GDP/trunk/Backstage/basic
报错:SVN:E210007无法协商认证机制
yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap

更换yum源:

cd  /etc/yum.repos.d/
wget  http://mirrors.aliyun.com/repo/Centos-7.repo
备份自带源文件
mv  CentOs-Base.repo CentOs-Base.repo.bak
更换阿里文件
mv Centos-7.repo CentOs-Base.repo
执行清理
yum clean all
yum makecache
yum -y update  (升级所有包同时也升级软件和系统内核)
yum -y upgrade (只升级所有包不升级软件和系统内核)

问题

当发现如nginx编译安装后缺少了某些模块怎么办?

我们重新编译nginx,过程如上,注意不要执行最后一步的make install(会覆盖当前安装)
之后只需要将解压目录下的objs/nginx拷贝到相应安装目录下覆盖即可

cp nginx /usr/local/nginx/sbin  (一定要先停止当前服务)

共享目录的权限问题

setenforce 0  暂时关闭selinux
vi /etc/selinux/config  永久关闭selinux
将SELINUX=enforcing 改成SELINUX=disabled

可解决共享目录的权限问题

请关注我的订阅号

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

推荐阅读更多精彩内容