lnmp环境搭建完全手册(四)——lnmp搭建(源码安装)
首先来介绍一下Nginx.Nginx是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx不仅可以作为web服务器,也可以作为负载均衡器,之前也有文章介绍,大家可以看一下.
MySQL是一款开源免费的数据软件,MySQL是一个小型关系型数据库管理系统,其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.
PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。
nginx当前最新稳定版是nginx-1.0.13
首先我们下载nginx,在Linux下执行下面命令:
cd /usr/src # 一般软件源码放在这个目录下 wget http://nginx.org/download/nginx-1.0.13.tar.gz # 下载
nginx会有几个依赖包,我们首先安装依赖,不要安装过程中会报错:
yum -y install zlib-devel pcre-devel openssl-devel
一般源代码安装分4个步骤(有人也会省去第一个步骤),解压(tar命令)预编译(执行源码包下的configure),编译(make),编译安装(make install)
首先我们解压源码包:
tar -zxvf nginx-1.0.13.tar.gz
这里解释下加压参数,z代表gzip(也就是后面的.gz文件)x代表加压,v表示显示详细信息,-f使用档案文件或设备(必选参数)
然后我们进行预编译,一般预编译会带上一些参数,已达到我们想要安装的效果,比如启用某个功能,禁用某个功能:
进入源码包目录进行预编译:
cd nginx-1.0.13./configure --prefix=/usr/local/nginx\ # 指定安装目录为/usr/local/nginx --with-openssl=/usr/include/openssl\ # 启用ssl --with-pcre\ # 启用正规表达式 --with-http_stub_status_module # 安装可以查看nginx状态的程序
其中./configure指执行当前目录下的configure文件
预编译完成后我们就可以进行编译和安装:
make #编译
执行后make后会有大量输出,等待输出完成后如果没有报错就可以进行安装执行:
make install #安装
安装完成后我们可以到相应的目录查看安装的文件:
ls /usr/local/nginx/ conf html logs sbin
好了,下面我们启动nginx:
/usr/local/nginx/sbin/nginx
通过查看端口看nginx是否启动成功,nginx占用TCP的80端口,执行下面命令:
netstat -antlp ¦ grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5946/nginx
我们查看80端口是开放的
然后打开浏览器访问http://192.168.3.120,我们会看到Welcome to nginx(之前的版本是 It’s Work):
nginx安装完毕后我们来安装MySQL ,我们使用MySQl-5.0.95版首先下载:
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.95.tar.gz
<span style="font-family: Arial;">安装之前我们先做一些准备工作,</span>
安装依赖:
yum -y install ncurses-devel
创建MySQL用户:
useradd -M -s /sbin/nologin mysql # -M不创建home目录,-s指定shell为不登录
然后进行安装:
tar -zxvf mysql-5.0.95.tar.gz cd mysql-5.0.95 ./configure --prefix=/usr/local/mysql \ --without-debug \ # 取消调试模式提高性能 --with-extra-charsets=utf8,gbk \ # 仅仅指定需要的默认字符集提高性能 --enable-assembler \ # 使用汇编模式提高性能 --with-mysqld-ldflags=-all-static \ # 以静态方式编译提高性能 --with-client-ldflags=-all-static \ --with-unix-socket-path=/tmp/mysql.sock \ # 使用unix socket提高性能 --with-ssl make make install
安装完成后复制配置文件和启动脚本:
cp support-files/my-medium.cnf /etc/my.cnf # 复制配置文件 cp support-files/mysql.server /etc/init.d/mysqld # 复制启动脚本 chmod +x /etc/init.d/mysqld # 给启动脚本执行权限
为了以后方便我们为所有的二进制可执行文件和动态链接库文件做一个软连接:
ln -s /usr/local/mysql/bin/* /usr/local/bin/ # 为可执行的二进制文件做软连接 ln -s /usr/local/mysql/lib/mysql/lib* /usr/lib/ # 为动态链接库做一个软连接
然后我们初始化数据库:
mysql_install_db --user=mysql # 用MySQL用户安装数据库
为了MySQL能正常使用我们需要更改一下MySQL安装目录和MySQL的数据库目录的属主和属组:
chown -R root.mysql /usr/local/mysql/ # 更改安装目录属主为root,属组为mysql chown -R mysql.mysql /usr/local/mysql/var/ # 更改数据库目录属主和属组都为mysql
这里的-R参数用来应用到所有子目录和文件
配置完毕后我们启动mysql:
service mysqld start
现在我们查看MySQL是否启动成功,MySQL占用TCP的3306端口,我们查看端口是否被占用:
netstat -antlp ¦ grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 32143/mysqld
然后我们通过mysql命令来连接mysql:
mysql
会显示如下内容表示已经成功启动MySQL并已经连接上
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.95-log Source distributionCopyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
MySQL安装完毕下面我们就来安装PHP,安装PHP前首先要安装几个源码包依赖:
libmcrypt mhash mcrypt
首先来安装几个源码包依赖:
wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2 tar -jxvf libmcrypt-2.5.8.tar.bz2 # 这个包是bz2的 使用-j参数解压 cd libmcrypt-2.5.8 ./configure make make install#################################################### wget http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2 tar -jxvf mhash-0.9.9.9.tar.bz2 cd mhash-0.9.9.9 ./configure make make install # 这两个包安装完成后要把动态链接库做一个软连接到/usr/lib,以为接下来的mcrypt依赖于这两个包 ln -s /usr/local/lib/libmcrypt* /usr/lib ln -s /usr/local/lib/libmhash.* /usr/lib/ ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config ###########################################################
wget http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz tar -zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8 ./configure make make install
然后下载php: wget http://am1.php.net/distributions/php-5.5.38.tar.bz2
安装依赖:
yum install <span style="font-family: Arial, Helvetica, sans-serif;">–y</span> libxml2-devel curl-devel libpng-devel openldap-devel libxslt-devel freetype-devel
</pre><pre code_snippet_id="1910093" snippet_file_name="blog_20161001_24_4125831" class="other" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar -zxvf libconv-1.1.14.tar.gz
.configure --prefix=/usr/local/libiconv
安装libmcrypt库
</pre><pre>
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install libmcrypt-devel -y
yum install mhash -y
我们使用nginx调用php的时候使用fpm的方式,在php 5.4中加入了对php-fpm的支持,所以就不需要打补丁了.安装PHP:
tar -jxvf php-5.3.28.tar.bz2 cd php-5.3.28 ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --with-fpm-user=nginx --with-fpm-group=nginx --enable-ftp --enable-opcache=no make make install
</pre><pre code_snippet_id="1910093" snippet_file_name="blog_20161001_25_3427720" class="other" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">注意加上--enable-fastcgi参数和--enable-force-cgi-redirect参数
不加上的话配置完之后解析不了php
到这里整个LNMP已经安装完成.下面我们就配置php和nginx能运行php网站:
首先为php创建配置文件:
cp php.ini-production /usr/local/php/php.ini # 如果是开发就复制php.ini-development cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf ln -s /usr/local/php/bin/php /usr/bin/
配置php-fpm,编辑php-fpm.conf
vi /usr/local/php/etc/php-fpm.conf
找到listen那一行,修改成如下内容:
listen = /var/run/php-fpm/php-fpm.sock # 使用unix socket
启动php-fpm
mkdir /var/run/php-fpm /usr/local/php/sbin/php-fpm
然后配置nginx,编辑nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
修改nginx配置文件支持php:
server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.php index.html index.htm; # 添加index.php的首页文件}# 添加下面内容location ~ \.php$ {fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;include fastcgi_params;include fastcgi.conf;}
修改完毕后保存退出重启nginx:
pkill -9 nignx /usr/local/nginx/sbin/nginx
然后在/usr/local/nginx/html下创建index.php,
vi /usr/local/nginx/html/index.php
添加下面内容:
- <?php
- phpinfo();
- ?>
保存退出后访问http://192.168.3.120/index.php,看到下面页面表示已经安装配置成功:
lnmp环境搭建完全手册(四)——lnmp搭建(源码安装)相关推荐
- php mysql 论坛 源码_LNMP架构的搭建(linux+nginx+mysql+php源码安装 )+Discuz论坛的搭建...
主机环境 redhat6.5 64位 实验环境 服务端 ip172.25.29.1 nginx+mysql+php 安装包 nginx-1.10.1.tar.gz mysql-boost-5.7 ...
- (二)企业部分之lnmp环境的搭建:mysql源码安装
Web服务器架构 Web服务器架构一般主要由系统环境.Web服务器.数据库和语言组成. 可以有以下组成方式: 系统:linux unix windox mac freebsd aix Web服务器:a ...
- 干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 安装平台 1 平台 目前Tensor ...
- anaconda tensorflow 2.3_TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
1 安装选择 1.1 平台 目前TensorFlow已支持Mac.Ubuntu和Windows三个主流平台(64位平台), 1.2 GPU vs CPU 在安装时可以选择安装版本是否支持GPU, 1. ...
- 基于centos5.8源码安装nginx之LNMP
LNMP 指的是什么呢,这里可以"望文生义",其是linux NGINX Mysql PHP的组合.每一种工具的安装都有其特长来吸引我们去使用它,对此就要了解其组合的各个工具 ...
- 项目部署--我爱起名网平台搭建学习研究(含php源码,亲测有效)
30年八字起名经验,起名专业权威,已为近十万名宝宝起名,好评率高达99.9%平台的搭建 只能用来学习研究使用,切勿商用或牟利,请大家遵守好这个规则,如果侵犯了你,请联系小编立即删除 本文涉及到的知识点 ...
- ott盒子 MySQL_Linux+Nginx+MySql+Php既LNMP源码安装
前言: 我们都知道Apache作为一款出色的web服务器占据了市场大半个江山,他的地位目前还无人能取代,但是除了Apache,,在web服务器软件行列,Nginx以其性能稳定.功能丰富.运维简单.处理 ...
- LNMP源码安装教程
NGINX源码安装 # 切换阿里的源# yum -y install wget# sudo mv CentOS-Base.repo CentOS-Base.repo.bak# sudo wget -O ...
- 外卖优惠券返利系统外卖返利公众号搭建cps系统小程序SaaS源码
外卖优惠券返利系统外卖返利公众号搭建cps系统小程序SaaS源码 美团/饿了么外卖CPS联盟返利公众号小程序裂变核心源码 源代码地址 https://gitee.com/caonima008/coup ...
最新文章
- Bootstrap 栅格系统 理解与总结
- websocket小荔枝
- WebStorm 打开多个项目的方法
- 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
- Linux Kernel TCP/IP Stack — 协议栈发包处理流程
- 博客园成立了管理团队
- linux sysctl重启服务,Linux /etc/sysctl.conf重启没有生效
- EduCoder Linux文件/目录高级管理一
- GAP(全局平均池化层)操作
- STL之deque和其他容器
- 编译运行linux0.12,linux0.12 编译过程
- Objective-C 内存管理
- optistruct中的DRESP2响应设置
- 数据库系统概论(第五版)概念大全 —— 第一章
- 如何在word中一次性删除硬回车或软回车
- 遇到网站被黑,怎么解决?
- 腊八节福利送上 , 抽奖活动来啦!5本SpringMVC+MyBatis相关、3本Android Studio相关、6本Kafka相关
- android炫酷的动画效果
- BZOJ2456mode
- 【无标题】CCSRP是网络与信息安全应急人员认证(现更名为CCSC)
热门文章
- python实例 87,88
- python基础入门(9)之字典
- 【OpenCV 例程200篇】32. 图像的扭变(错切)
- java web 开发之写在前面(0)
- windows rt c语言,有arm架构的windows平板吗??与x86的win有什么不同?arm写c语言怎样?
- python java web前端 net 移动开发_JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的...
- opencv1-加载、修改、保存图像
- python 根据时间间隔删除文件夹内修改时间比较早的文件
- 037_自动添加防火墙规则,开启某些服务或端口(适用于 RHEL7)
- Maven_生产环境下开发对Maven的需求