设为首页 收藏本站
查看: 663|回复: 0

LNMP源码搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-24 11:08:36 | 显示全部楼层 |阅读模式
LNMP(Linux+Nginx+Mysql+PHP架构)

CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。

CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。

FAST-CGI:WEB服务器与处理程序之间通信的一种协议(app server 和web server 之间的通信协议),是CGI的改进方案。CGI程序反复加载是CGI性能低下的主要原因,如果CGI程序保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail-Over特性等。

FASTCGI是常驻型的CGI,它可以一直运行,在请求到达时,不会花费时间去fork一个进程来处理。

FastCGI是语言无关的、可伸缩架构的CGI开放扩展,将CGI解释器进程保持在内存中,以此获得较高的性能。

fastcgi是一个协议,php-fpm实现了这个协议,php-fpm的fastcgi协议需要有进程池,php-fpm实现的fastcgi进程叫php-cgi,所以php-fpm其实是他自身的fastcgi或php-cgi进程管理器。


Nginx+FastCGI安装配置:

php安装:

1
2
3
4
5
6
7
8
tar -jxvf php-5.4.42.tar.bz2 ;cd php-5.4.42
./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt=/usr/local/libmcrypt \
--enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath \
--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \
--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \
--with-gd --with-jpeg-dir --with-openssl
make && make install



在这一步,Ubuntu或者CentOS的用户十有八九会出现类似 configure: error: mcrypt.h not found. Please reinstall libmcrypt.的问题,这是因为缺少了mcrypt这个库下载安装:
1
2
3
4
wget ftp://mcrypt.hellug.gr/pub/crypt ... mcrypt-2.5.7.tar.gz
d libmcrypt-2.5.7
./configure --prefix=/usr/local/libmcrypt
make && make install



配置php
1
2
3
4
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
groupadd web
useradd -g web web



修改php-fpm.conf配置文件将
1
2
3
4
user = nobody
group = nobody

;pid = run/php-fpm.pid 把前面的;去掉  设置php-fpm.pid的路径



修改为:
1
2
3
4
5
user = web
group = web


pid = run/php-fpm.pid




创建php.ini文件,这个文件是对php一些运行选项进行配置的文件,非常重要,将PHP源码目录下的php.ini-production文件复制到PHP安装目录下的「lib/」文件夹,并且重命名为php.ini

[iyunv@192_168_77_168 php-5.4.42]# cp php.ini-production /usr/local/php/lib/php.ini

安装Nginx

1
2
3
4
5
6
7
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -xzvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
yum install pcre pcre-devel -y

[iyunv@192_168_77_168 nginx-1.8.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install



启动服务
/usr/local/nginx/sbin/ngin

php+nginx整合

Nginx通过PHP的FastCGI处理请求,首先到nginx的安装目录下,修改conf/nginx.conf文件,找到如下内容
1
2
3
4
5
6
7
8
9
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}



将第3~第7个「#」去掉,就是取消注释,同时将
/scripts$fastcgi_script_name改为$document_root$fastcgi_script_name即变为下面这样:
1
2
3
4
5
6
7
8
9
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #   
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }



使用vim的列操作可以很快去掉它们。在nginx的安装目录下,新增一个PHP文件「html/index.php」,文件内容如下:
<?php
echo phpinfo();
?>
接下来就启动php-fpm以及重启nginx:
1
2
[iyunv@192_168_77_168 ~]# /usr/local/php/sbin/php-fpm                 #启动php-fpm
[iyunv@192_168_77_168 ~]# /usr/local/nginx/sbin/nginx -s reload     #重启nginxnetstart -ntlup | grep php 可以查看到php端口9000



http://192.168.77.168/访问
QQ截图20150824110810.png

MYSQL安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
安装依赖包
yum install gcc gcc-c++ ncurses-devel bison perl  -y

groupadd mysql   

useradd mysql -s /sbin/nologin -M -g mysql  

tar -xzvf mysql-5.5.44.tar.gz

cd mysql-5.5.44

mkdir /data/mysql3306 -p

cmake -DCMAKE_INSTALL_PREFIX=/data/app/mysql3306 -DMYSQL_DATADIR=/data/mysql3306 -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 -DMYSQL_USER=mysql -DMYSQL_UNIX_ADDR=/data/mysql3306/mysql3306.sock

make && make install



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
将源文件中的配置文件copy到mysql数据目录下改成my.cnf配置文件
[iyunv@192_168_77_168 mysql-5.5.44]# cp -a support-files/my-large.cnf /data/mysql3306/my.cnf
chown mysql.mysql app/ -R
chown mysql.mysql mysql3306/ -R

从app/mysql3306目录下copy mysql启动文件
cp -a support-files/mysql.server /etc/init.d/mysqld

在my.cnf配置文件加入
[mysqld]
port            = 3306
datadir = /data/mysql3306
basedir = /data/app/mysql3306

初始化数据库
[iyunv@192_168_77_168 mysql3306]# ./scripts/mysql_install_db --basedir=/data/app/mysql3306/ --datadir=/data/mysql3306/ --user=mysql

设置环境变量
[iyunv@192_168_77_168 mysql3306]# echo "export PATH="\$PATH":/data/app/mysql3306/bin/" >>/root/.bash_profile && source /root/.bash_profile

重启mysql
[iyunv@192_168_77_168 mysql3306]# /etc/init.d/mysqld restart
Shutting down MySQL. SUCCESS!
Starting MySQL.. SUCCESS!



至此LNMP架构搭建完毕。。。。。

搭建discuz:
1
2
3
4
5
6
7
8
9
10
11
12
13
unzip Discuz_X3.1_SC_UTF8.zip -d /usr/local/nginx/html/

cd /usr/local/nginx/html/

mv upload/* .

mysql -uroot -p  登录进数据库


create database discuz;

授权用户
grant all privileges on discuz.* to discuz@'192.168.77.168' identified by '123456';



客户端输入http://192.168.77.168/安装论坛
QQ截图20150824110819.png
目录权限授权:chmod 777 -R uc_client/ uc_server/ config/ data/然后输入授权用户配置

至此安装成功


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-103413-1-1.html 上篇帖子: wamp本地能访问,但局域网不能访问的解决办法 下篇帖子: LNMP高级配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表