Linux LAMP架构搭建

一.部署LAMP基本架构

1.L(linux)A(apache)M(mysql)P(php)

2.稳定版本(mysql5.1,php5.3,apache2.2)

3.安装顺序,mysql-->apache-->php

4.将所需的压缩包放指定目录。

(1)编译原理:主要为了让C语言开发的包编译成二进制文件。

(2)系统是区分64位与32位 ,对应的安装包

(3)查看linux系统位,uname –a。i686是32 x86是64。

5.安装mysql

(1)解压mysql压缩包

扫描二维码关注公众号,回复: 11082906 查看本文章

  tar zxvf mysql.tar.gz                             

(2)将mysql目录移动/usr/下。

  mv mysql目录 /usr/local/mysql             

(3)在mysql目录下,创建目录,作为datadir(数据目录)

  mkdir /data/mysql                                 

(4)创建mysql用户,不允许登陆,不创建家目录。

  useradd -s /sbin/nologin -M mysql         

(5)将/data/mysql/目录所属组所属主给mysql用户。

  chown -R mysql:mysql /data/mysql/         

(6)将配置文件存放到/etc/my.conf覆盖。

  cp /mysql目录/support-files/my-large.cnf /etc/my.cnf

    

(7)修改配置文件

  vim进入/etc/my.conf

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]
port            = 3306
socket          = /usr/local/mysql/mysql.sock
datadir      = /data/mysql
pid-file = /data/mysql/mysql.pid
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
------------------------------------------
常用参数:

Port                               #监听端口

Socket                             #通信方式

Key_buffer_size                   #mysql内存使用大小

Log-bin=mysql-bin               #记录二进制日志,注释掉。

Binlog_format=mixed            #日志相关参数,注释掉。

Server_id=1                 #主从复制参数,注释掉。

(8)将服务的启动脚本放入/etc/init.d/下。

  cp /mysql目录/support-files/mysql.server /etc/init.d/mysqld

  

(9)修改启动文件。

  vi /etc/init.d/mysqld                       

# The following variables are only set for letting mysql.server find things.

# Set some defaults
mysqld_pid_file_path=
if test -z "$basedir"
then
  basedir=/usr/local/mysql    
  bindir=/usr/local/mysql/bin
  mysqld_pid_file_path=/data/mysql/master.pid
------------------------------------------

basedir     #定义程序所在路径

bindir     #定义数据库启动路径

(10)在mysql目录下初始化mysql服务,看到两个ok就没问题。

  mysql]#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

报错1:Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
    解决:yum install –y libai*

报错2:Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
    解决:yum install –y numactl-*

(11)查看是否生成mysql,test。

  mysql]#ls /data/mysql                 

(12)启动mysql。

  mysql]#/etc/init.d/mysqld start    

报错1:Starting MySQL.... ERROR! The server quit without updating PID file (/data/mysql/localhost.localdomain.pid).
    解决:[root@localhost ~]# cd /usr/local/mysql 
             [root@localhost mysql]# chown -R mysql.mysql . 
             [mysql@localhost mysql]#scripts/mysql_install_db


                        

(13)查看mysql进程。

  ps aux|grep mysql

(14)开启mysql命令终端Mysql>。

  /usr/local/mysql/bin/mysql   

报错1:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    解决:ln -s  /usr/local/mysql/mysql.sock           /tmp/mysql.sock

6.apache安装

(1)解压。

  tar zxf httpd-2.2.16.tar.gz   

(2)进入解压后目录。

  cd httpd-2.2.16                   

(3)安装gcc

  yum -y gcc                       

(4)编译安装。

  ./configure --prefix=/usr/local/apache2 --with-included-apr --with-pcre --enable-mods-shared=most

--whit-included-apr 
注:可进行平台移植,动态运行库

--enable-mods-shared=most
注:enable静态模块,与apache一通执行,占用内存cpu,速度快
注:shared动态模块,可调用执行
注:enable-mods-shared=all 安装所有动态模块,不用可以手动禁掉
报错1:在http2.4编译安装时会出现报错
configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.
解决:在Apache官网下载 两个ARP插件覆盖到http文件内
# cd /usr/local/src<br data-filtered="filtered"># wget http://apache.fayea.com/apr/apr-1.5.2.tar.bz2
# wget http://apache.fayea.com/apr/apr-util-1.5.4.tar.bz2
# tar -jxvf apr-util-1.5.4.tar.bz2
# tar -jxvf apr-1.5.2.tar.bz2
# cp -rf apr-1.5.2 /usr/local/src/httpd-2.4.18/srclib/apr 
# cp -rf apr-util-1.54 /usr/local/src/httpd-2.4.18/srclib/apr

报错2:configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
    解决:yum -y install pcre-devel

(5)编译。测试echo $?

  make          

报错1: xml/apr_xml.c:442: 错误:‘apr_xml_parser’没有名为‘xp’的成员
    解决:yum inatsll expat-devel -y

(6)编译安装

  make install                                

7.php安装(最后安装)

(1)解压

  tar zxf php-5.3.28.tar.gz      

(2)进入解压目录

  cd php-5.3.28                     

(3)编译安装,依赖模块。

  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir -with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ip6    

yum -y install  libxml2-devel*
yum -y install  bzip2-devel*
yum -y install  curl curl-devel
yum -y install  libjpeg-devel
yum -y install  openssl-devel*
yum -y install  freetype-devel*
yum -y install libpng-devel
yum -y install  libmcrypt-devel* 
#没有安装包需要下载源码包
#安装编译包
注:如果报错可同过 yum list | grep 报错名 :来查找需要安装的包

  make      #编译

  make install   #编译安装

7.配置LAMP架构文件

(1)apche主配置文件。

  /usr/local/apache2/conf/httpd.conf         

(2).so模块。

  /usr/local/apache2/modules/                   

  注:libphp5.so做支持的与/usr/local/php/bin/php相同。

(3)查看模块命令。

  ldd /usr/local/apache2/modules/libphp5.so    

(4)查看php编译参数目录。

  /usr/local/php/bin/php -i |les s                     

   cat /usr/local/apache2/build/config.nice              #查看apche编译参数目录。

   cat /usr/local/mysql/bin/mysqlbug|grep configure #查看mysql编译参数目录

   ①php-5.4.28]#cp php.ini-developmen /usr/local/php/etc/php.ini              #开发环境使用。

   ②php-5.4.28]#cp php.ini-production  /usr/local/php/etc/php.ini               #生产环境使用。

     注:/usr/local/php/bin/php –i |less                #验证加载配置文件。

     

(6)查看php加载的模块。

  /usr/local/php/bin/php -m                     

   /usr/local/apache2/bin/apachectl -M             #查看apache加载模块。

  注:(shared)动态。(static)静态。

(7)查看状态。

  /usr/local/apache2/bin/apachectl -t        

  注:apr sockaddr_info_get()          #表示SELINUX没有关闭。

         Syntax OK                  #没有问题。

(8)启动apahce配置文件。

  usr/local/apache2/bin/apachectl start       

(8)报错

报错1:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
    解决:[root@server conf]# vi httpd.conf
    #ServerName www.example.com:80
       ServerName localhost:80

(9)查看启动进程。

  ps aux | grep httpd          

8.测试httpd解析php。

(1)编辑解析php。

  vim /usr/local/apache2/htdocs/1.php    

  

  注:页面访问。

(2)访问失败,排错。

  Vim /usr/local/apache2/conf/httpd.conf        #排查配置文件。

  

  注:查看php模块加载。

  

  注:添加AddType。

(3)测试配置文件。

  /usr/local/apache2/bin/apachectl -t     

(4)重启配置文件。

  /usr/local/apache2/bin/apachectl restart 

9.测试启动

 

二.在LAMP基础上架设论坛网站,虚拟主机。

1.关闭SELINUX

(1)编辑配置文件注:长期关闭。

  vim /etc/selinux/config         

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

(2)临时关闭

  getenforce 0                       

2.查找php无法解析原因。

(1)查看apache是否调用php模块。

  /usr/local/apache2/bin/apachectl -M

php5_module (shared)

(2)如果没有模块,需要查找是否有编译过php模块。

  

(3)如果有需要看一下apache主配置文件下是否调用php模块。

  vim /usr/local/apache2/conf/httpd.conf

LoadModule php5_module        modules/libphp5.so  注:这个php模块是在编译的时候通过apxs模块自动写入的。

(4)查看apache主配置文件下,php支持模块是否写入。

  vim /usr/local/apache2/conf/httpd.conf

AddType application/x-httpd-php .php

(5)apache主配置文件下添加index.php主页类型。

   vim /usr/local/apache2/conf/httpd.conf

<IfModule dir_module>

    DirectoryIndex index.html index.php

</IfModule>

3.编辑虚拟主机

(1)解开注释,虚拟主机配置文件。

  vim /usr/local/apache2/conf/httpd.conf

Include conf/extra/httpd-vhosts.conf

(2)编辑解注释一行的配置文件。

  vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<Directory "/usr/local/apache">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require all granted
</Directory>
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache"
    ServerName 123.com
    CustomLog "logs/123.com-access_log" common
</VirtualHost>
-------------------------------------------
常用参数

<VirtualHost *:80>

 Serveradmin                            #管理员邮箱

 documentRoot                           #目录URL

 ServerName                             #域名访问

ServerAlias                             #域名别名(可写多行)

Errorlog                                #错误日志

Customlog                               #访问日志common格式

</VirtualHost>

----------------------------------------------

虚拟主机参数,适用Apache2.4往后版本

<Directory "C:/xxx/xxx">  
    Options Indexes FollowSymLinks  
    AllowOverride all  
    Require all granted  
</Directory>  
  
<VirtualHost *:80>  
    DocumentRoot "C:/xxx/xxx"  
    ServerName www.xxx.com  
</VirtualHost> 

注:虚拟主机,可以给予多IP多端口多域名的配置。

(3)apache主配置文件下的相对路径参数。

  vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

1

ServerRoot "/usr/local/apache2"

(4)测试配置文件。

  /usr/local/apache2/bin/apachectl -t

(5)重启主配置文件。

  /usr/local/apache2/bin/apachectl restart

  

(7)配置mysql,数据库网站安装。

  /etc/init.d/mysqld start

   注:启动mysql。

(8)添加开机自启动。

  chkconfig --list | grep mysql         #查看是否存在mysql服务。

  chkconfig --add mysqld      #添加mysqld服务

  chkconfig mysqld on      #打开开机自启动

  /usr/local/mysql/bin/mysql

  注:测试启动mysql

(9)添加环境变量赋值。可使用mysql命令直接启动。在当前终端生效。

    PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:

   /usr/bin:/root/bin:/usr/local/mysql/bin

(10)设置所有终端都可访问。

  vim /etc/profile

#文件最下面输入
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

  source /etc/profile  #即时生效

(11)设置mysql管理员密码。

  mysqladmin -uroot password ’123456‘

  mysql -u root –p  #登陆 

  注:再次登陆应输入管理员,与密码。

(12)mysql下添加普通用户赋予管理权限,对应主机,与密码。

  mysql> grant all on *.* to 'user1'@'localhost' identified by 'discuz';

发布了5 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_40210977/article/details/90514996