lamp安装

1.安装apache

apache的特点

功能强大、配置简单、速度快、应用广泛、性能稳定可靠,并可做代理服务器或负载均衡来使用。

apache应用场景

1.1 解除依赖下载软件包

yum install -y zlib zlib-devel
cd /server/tools/
wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.2.34.tar.gz
tar xf httpd-2.2.34.tar.gz
cd httpd-2.2.34/

1.2 安装apache配置

./configure --prefix=/application/apache2.2.34 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite 
make && make install

 

1.3 参数解释

--prefix 指定安装目录
--enable-deflate 压缩文件
--enable-expires 设置浏览器缓存过期
--enable-headers http的头
--enable-modules=most 激活大多数模块
--enable-so 
--with-mpm=worker mpm 
--enable-rewrite

1.4 apache 目录结构及配置文件

bin/ab 压力测试工具
ab.exe -h 查看帮助手册
apacheMonitor apache管理工具(windows),
apachectl apache管理工具(linux)
apxs 添加新的模块时使用(在linux中?)编译php里需要这里的命令
htpasswd 为网站设置用户名密码
httpd 网站开启的服务
rotatelogs 日志切分工具
httpd.conf 主配置文件重要
extra 扩展目录
vim /httd.conf
搜索
DirectoryIndex index.html #默认使用index.html
ServerRoot "/application/apache2.2.34" #软件安装位置
Listen 80 #监听端口 默认监听本机所有IP
<IfModule !mpm_netware_module> #模块的开头
<IfModule !mpm_winnt_module> #模块的开头
User daemon #编译安装软件默认用户 daemon
Group daemon #编译安装软件默认用户组 daemon
</IfModule>
</IfModule>
ServerAdmin you@example.com #网站管理员邮箱
DocumentRoot "/application/apache2.2.34/htdocs" #默认的站点目录
<Directory /> #权限控制 / 表示根目录
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow #允许
    Deny from all #禁止
</Directory>
<Directory "/application/apache2.2.34/htdocs"> #新创建网站必须增加这些行 !!!!!
    Options Indexes FollowSymLinks # 它允许了没有首页情况下展示目录结构 需要去掉 Indexes 或 -Indexes,此时没有首页文件时会出现403 forbidden错误,所以一定要有首页文件
    AllowOverride None # 此处与httpd-defaults.conf控制,如果值为None 则表示禁止使用.htaccess All 表示允许
    Order allow,deny
    Allow from all
</Directory>
<IfModule dir_module> #首页文件
    DirectoryIndex index.html 
</IfModule>
<FilesMatch "^.ht"> 
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>
ErrorLog "logs/error_log" #错误日志
LogLevel warn #访问日志级别
<IfModule log_config_module> #日志类型
    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
    LogFormat "%h %l %u %t "%r" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access_log" common
</IfModule>
<IfModule alias_module> #此处内容极不常用,建议删除
    ScriptAlias /cgi-bin/ "/application/apache2.2.34/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "/application/apache2.2.34/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
DefaultType text/plain #缺省类型,普通文本
<IfModule headers_module>
    RequestHeader unset Proxy early #不设置代理
</IfModule>
<IfModule mime_module>
    TypesConfig conf/mime.types #
    AddType application/x-compress .Z #压缩类型
    AddType application/x-gzip .gz .tgz
  

AddType application/x-httpd-php .php .php3 .phtml .inc #手动添加php解析文件

 

AddType application/x-httpd-php-source .phps

</IfModule>
<IfModule ssl_module> # ssl 模块加密
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

三个扩展的配置文件 httpd-vhosts.conf httpd-mpm.conf httpd-default.conf httpd-vhosts.conf NameVirtualHost *:80 #基于域名的虚拟主机 * 代表本机所有IP地址 <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/application/apache2.2.34/docs/dummy-host.example.com" ServerName dummy-host.example.com ServerAlias www.dummy-host.example.com ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/application/apache2.2.34/docs/dummy-host2.example.com" ServerName dummy-host2.example.com ErrorLog "logs/dummy-host2.example.com-error_log" CustomLog "logs/dummy-host2.example.com-access_log" common </VirtualHost> httpd-mpm.conf <IfModule !mpm_netware_module> #pid文件 PidFile "logs/httpd.pid" </IfModule> <IfModule !mpm_winnt_module> <IfModule !mpm_netware_module> #锁文件 LockFile "logs/accept.lock" </IfModule> </IfModule> <IfModule mpm_prefork_module> #模式文件之prefork模式 默认为prefork模式 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_worker_module> #模式文件之 worker模式 指定woker模式 即为worker模式,如果没指定默认为prefork模式 StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_beos_module> StartThreads 10 MaxClients 50 MaxRequestsPerThread 10000 </IfModule> <IfModule mpm_netware_module> ThreadStackSize 65536 StartThreads 250 MinSpareThreads 25 MaxSpareThreads 250 MaxThreads 1000 MaxRequestsPerChild 0 MaxMemFree 100 </IfModule> <IfModule mpm_mpmt_os2_module> StartServers 2 MinSpareThreads 5 MaxSpareThreads 10 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_winnt_module> ThreadsPerChild 150 MaxRequestsPerChild 0 </IfModule> httpd-defaults.conf Timeout 300 #超时时间 KeepAlive On #保持长连接 MaxKeepAliveRequests 100 #最大请求数 KeepAliveTimeout 5 #保持连接超时时间 UseCanonicalName Off AccessFileName .htaccess #rewrite重写 ServerTokens Full #隐藏版本号 ServerSignature On # HostnameLookups Off

 1.5问题解决

错误:
[root@VM_0_5_centos conf]# apachectl -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
解决问题:
用记事本打开 httpd.conf

#ServerName www.example.com:80 修改前
ServerName localhost:80   修改后

[root@VM_0_5_centos conf]# apachectl start
[root@VM_0_5_centos conf]# ps -ef | grep httpd
root     29861     1  0 10:00 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   29862 29861  0 10:00 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   29863 29861  0 10:00 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   29864 29861  0 10:00 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   29865 29861  0 10:00 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   29866 29861  0 10:00 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root     29885 24369  0 10:00 pts/2    00:00:00 grep --color=auto httpd
[root@VM_0_5_centos conf]# ss -lnt | grep 8000
LISTEN     0      511    127.0.0.1:8000                     *:*                  

2 安装php

apache以模块方式添加php
下载php
wget http://cn2.php.net/distributions/php-7.1.1.tar.gz
使用下载 libiconv rpm包使用
链接:https://pan.baidu.com/s/1eR1LB8I 密码:rnr2
rpm -ivh libiconv-1.14-1.x86_64.rpm
tar xf php-7.1.1.tar.gz
cd php-7.1.1

2.1安装依赖

yum install -y zlib-devel openssl-devel pcre-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libivonv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel bzip2-devel readline-devel recode recode-devel libtidy libtidy-devel libmcrypt-devel mhash mcrypt

2.2编译参数

./configure --prefix=/application/php-7.1.1 --with-apxs2=/application/apache/bin/apxs --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --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-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex  --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-static --with-xsl --enable-ftp --enable-opcache=yes 
make && make install
#授权
useradd www -s /sbin/nologin -M
chown -R www.www /application/php-7.1.1/
ln -s /application/php-7.1.1/ /application/php
复制php配置文件
cp /server/tools/php-7.1.1/php.ini-development  ./php.ini
cp /server/tools/php-7.1.1/php.ini-development /application/php/etc/
修改apache httpd.conf
vim /application/apache/conf/httpd.conf
AddType application/x-httpd-php .php .php3 .phtml .inc
AddType application/x-httpd-php-source .phps

重启服务
/application/apache/bin/apachectl -k restart

3 二进制安装数据库

安装依赖包
yum install -y libaio libaio-devel
上传mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz,#二进制文件
tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz #时间会长一些
mkdir -p /application/mysql5.6.34
mv /server/tools/mysql-5.6.34-linux-glibc2.5-x86_64/* /application/mysql5.6.34/
ln -s /application/mysql5.6.34/ /application/mysql 
useradd -s /sbin/nologin -M mysql
chown -R mysql.mysql /application/mysql
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /application/mysql/support-files/mysql.server
cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
#设置密码
/application/mysql/bin/mysqladmin -u root password 'new-password'
/application/mysql/bin/mysqladmin -u root -h web02 password 'new-password'
#添加到PATH路径
sed -i '$aexport PATH=/application/mysql/bin:$PATH' /etc/profile
source /etc/profile
#跳过授权表启动,在没有密码时,可以启动程序
/application/mysql/bin/msyqld_safe --skip-grant-table &
原文地址:https://www.cnblogs.com/anyux/p/8178091.html