源码编译安装LAMP

目录

前言

一、LAMP概述

    1、各个部分的作用

二、LAMP的安装

     1、LAMP安装顺序

     2、编译安装Apache httpd服务

     3、编译安装mysqld服务

     4、编译安装PHP解析环境

     5、安装论坛

总结    


前言

        LAMP (Linux- Apache-MySQL-PHP〉网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,PHP(或Perl、Python)编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。

一、LAMP概述

     Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案。

    1、各个部分的作用

       L(Linux):LAMP架构的基础,提供用于支撑Web站点的操作系统。

       A(Apache网站服务):LAMP架构的前端,向用户提供网站服务、发送网页、图片等文件内容

       M(Mysql数据库服务):LAMP架构的后端,存储各种账号信息、产品信息、客户资料、业务数据等,其他程序可以通过SQL语句进行查询、更改。

       P(PHP/Perl/Python编程语言):负责解释动态网页文件,提供Web应用程序开发和运行环境。

二、LAMP的安装

     1、LAMP安装顺序

        Linux系统—》Apache服务器—》Mysql数据库—》PHP环境

      (PHP—般放在最后,其他的没有严格要求)

      2、编译安装Apache httpd服务

         2-1、关闭防火墙,将安装Apache所需软件包传到/opt目录下

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0

         2-2、安装环境依赖包

yum -y install \
gcc \                     #C语言的编译器
gcc-c++ \                 #C++的编译器
make \                    #源代码编译器(源代码转换成二进制文件)
pcre \                    #pcre是一个Perl函数库,包括perl兼容的正则表达式库
pcre-devel \              #perl的接口开发包
expat-devel \             #用于支持网站解析HTML、XML文件
perl                      #perl语言编译


yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl



         2-3、配置软件模块

[root@localhost opt]# tar zxf apr-1.6.2.tar.gz 
[root@localhost opt]# tar zxf apr-util-1.6.0.tar.gz
[root@localhost opt]# tar jxf httpd-2.4.29.tar.bz2 
[root@localhost opt]# mv apr-1.6.2 /opt/httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 /opt/httpd-2.4.29/srclib/apr-util
[root@localhost opt]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]# ./configure \     
--prefix=/usr/local/httpd \         #指定httpd服务程序的安装路径
--enable-so \                       #启用动态加载模块支持,使httpd具备进一步扩展功能的能力
--enable-rewrite \                  #启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \             #启用字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi                        #启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力

         2-4、编译及安装

make -j 2 && make install      #make -j 2  表示用2核同时进行编译,速度快一些

         2-5、优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

         2-6、添加httpd 系统服务

vim /lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

systemctl start httpd.service
systemctl enable httpd.service

 

         2-7、修改httpd服务配置文件

[root@localhost httpd-2.4.29]# vim /etc/httpd.conf

--52行--修改
Listen 192.198.159.80:80     #自己服务器的IP

--197行--取消注释,修改
ServerName www.ss.com:80     #域名自己设置

--221行--默认首页存放路径      #无需修改
DocumentRoot "/usr/local/httpd/htdocs"

--255行--默认首页文件名设置    #无需修改
DirectoryIndex index.html

[root@localhost httpd-2.4.29]# httpd -t  或 apachectl -t	#检查配置文件的配置项是否有误
[root@localhost httpd-2.4.29]# cat /usr/local/httpd/htdocs/index.html
[root@localhost httpd-2.4.29]# systemctl restart httpd.service
[root@localhost httpd-2.4.29]# netstat -natp | grep 80

         2-8、访问验证

[root@localhost httpd-2.4.29]# echo "192.168.159.80 www.ss.com" >> /etc/hosts

      3、编译安装mysqld服务

         3-1、将安装mysql所需软件包传到/opt目录下

         3-2、安装环境依赖包

yum -y install \
gcc \
gcc-c++ \
ncurses \             #字符终端下图形互动功能的动态库
ncurses-devel \       #ncurses开发包
bison \               #语法分析器
cmake                 #mysql需要用cmake编译安装
 


yum -y install \
gcc \
gcc-c++ \
ncurses \
ncurses-devel \
bison \
cmake

         3-3、配置软件模块

tar zxf mysql-boost-5.7.20.tar.gz 
tar zxf boost_1_59_0.tar.gz 

mv boost_1_59_0 /usr/local/boost

cd /opt/mysql-5.7.20/

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1

 注意:如果在CWAKE的过程中有报错,当报错解决后,需要把源码目录中的CNakeCache.txt文件删除,然后再重新CNKE,否则错误依旧

         3-4、编译及安装

 make -j 2 && make install

         3-5、创建mysql用户

[root@www mysql-5.7.20]# useradd -M -s /sbin/nologin  mysql

         3-6、修改mysql配置文件

[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

 

         3-7、更改mysql安装目录和配置文件的属主属组

chown -R mysql:mysql /usr/local/mysql
chown mysql:mysql /etc/my.cnf

          3-8、设置路径环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/
source /etc/profile
echo $PATH

          3-9、初始化数据库

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

          3-10、添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
netstat -anpt | grep 3306

          3-11、修改mysql的登录密码

 mysqladmin -u root -p password "123456"

          3-12、授权远程登录

mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by '123456';
show databases;

      4、编译安装PHP解析环境

         4-1、将PHP所需软件包传到/opt目录下

        4-2、安装GD库和GD库关联程序,用来处理和生成图片

yum -y install \
gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

 

        4-3、配置软件模块

tar jxf php-7.1.10.tar.bz2 

cd /opt/php-7.1.10/
./configure \
--prefix=/usr/local/php7 \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-config-file-path=/usr/local/php7 \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

        4-4、编译及安装

make && make install

        4-5、.复制模版文件作为PHP的主配置文件,并进行修改

cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini	
 #在测试环境时使用php.ini-development文件,而在生产环境时使用php.ini-production文件

vim /usr/local/php7/php.ini

--939行--取消注释,修改
date.timezone = Asia/Shanghai

--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock

 

        4-6、优化把PHP的可执行程序文件放入路径环境变量的目录中便于系统识别

ln -s /usr/local/php7/bin/* /usr/local/bin/
php -m 

        4-7、修改httpd服务的配置文件,让apache支持PHP

vim /etc/httpd.conf 

---156行----  检查支持php7的模块是否存在
LoadModule php7_module        modules/libphp7.so

--256行--修改首页文件名设置
DirectoryIndex index.html index.php

--393行--插入以下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps


        4-8、.验证PHP测试页

rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
systemctl restart httpd.service

      5、安装论坛

         5-1、将论坛所需软件包传到/opt目录下

         5-2、创建一个数据库

mysql -uroot -p123456
 
mysql> CREATE DATABASE bbs;

mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码

mysql>flush privileges; 
#刷新数据库

         5-3、解压并配置

unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis
#解压论坛压缩包

cd /opt/dis
cd dir_SC_UTF8/
cp -r upload/ /usr/local/httpd/htdocs/bbs
#上传站点更新包

cd /usr/local/httpd/htdocs/bbs
#切换论坛目录

chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data
#更改论坛目录属主

 

 

 

         5-4、下面测试数据库工作是否正常

mysql -u root -p

CREATE DATABASE sky;
GRANT all ON sky.* TO 'skyuser'@'%' IDENTIFIED BY 'admin123';
flush privileges; 

vim /usr/local/http/htdocs/index.php
<?php
$link=mysql_connect('192.168.226.128','skyuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
mysql_close();
?>

         5-5、如遇到报错信息如下

Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime() in /data/www/install/index.php:12 Stack trace: #0 {main} thrown in /data/www/install/index.php on line 12
解决方法
#致命错误:未捕获错误:未定义的函数的调用set_magic_quotes_runtime(),在这个文件的第12行,找到该路径下的index.php这个文件打开,查找set_magic_quotes_runtime

#切换目录
cd /usr/local/httpd/htdocs/bbs/install
vim index.php进行编辑

//把 
  
@set_magic_quotes_runtime(0); 
  
//替代成 
  
@ini_set("magic_quotes_runtime",0);

故障问题已解决



测试验证结果正常,论坛网站能正常打开

总结    

        LAMP架构的网站具有性能出色、成本低廉、部署灵活、快速开发、安全稳定等特点,可以负载的访问量也非常大,国内的大量个人网站如果想要支撑大访问量,采用LAMP架构是一个不错的方案。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值