LAMP (linux+apache(httpd)+mysql+php 简称为LAMP(LAMP指的Linux(操做系统)、Apache HTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,通常用来创建web应用平台。)
三个角色能够装在不一样的服务器上可是apache+php 必须在一台服务器上
LAMP三者工做思路:
第一种是动态访问:首先用户登陆用户名访问apache(httpd),apache须要通过php的module(模块)在mysql中读取相应的用户名与密码。(mysql中是不存在任何的图片,与文件的。存的内容是数据如,用户名对应的密码。)
第二种是静态访问:用户登陆一个网站后,能够看到的图片就是静态的访问。(直接从服务器获取到的内容不通过mysql的是静态访问)php
MySQL官网 https://www.mysql.com
Mariadb官网 https://mariadb.com/html
MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀)
Mariadb为MySQL的一个分支,MariaDB主要由SkySQL公司(现改名为MariaDB公司)维护,SkySQL公司由MySQL原做者带领大部分原班人马创立.
Community 社区版本(开源版本)、
Enterprise 企业版、 GA(GenerallyAvailable)指通用版本在生产环境中用的、DMR(Development Milestone Release)开发里程碑发布版 、RC(Release Candidate)发行候选版本、Beta开放测试版本、
Alpha内部测试版本
Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6mysql
mysql的几个经常使用的安装方式:rpm(不能定义安装的路径)、源码、二进制免编译(能定义安装的路径这是与rpm的不一样之一)
这里选择二进制方式进行安装, 由于二进制包只需解压便可,不须要执行cmake/configure,manke,make install等过程,而后进行简单配置后就可使用了linux
[root@chy01 src]# uname -a Linux chy01 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux (首先区分linux系统为32仍是64而后下载mysql包) [root@chy01 src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz (下载二进制mysql包) [root@chy01 src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz (解压mysql包) [root@chy01 src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql (移动mysql到/usr/local/mysql下) [root@chy01 src]# cd /usr/local/mysql/ (进入此目录下) [root@chy01 mysql]# ls (进入后查看文件) bin data include man README share support-files COPYING docs lib mysql-test scripts sql-bench [root@chy01 mysql]# useradd -s /sbin/nologin -M mysql (增长mysql用户) [root@chy01 mysql]# mkdir -p /data/mysql (建立data目录,此目录下存放的是数据库) [root@chy01 mysql]# useradd mysql (增长mysql用户) [root@chy01 mysql]# chown -R mysql /data/mysql 给这个mysql给权限 [root@chy01 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper (初始化时报了一个错误,解决方法以下 [root@chy01 mysql]# yum list |grep perl |grep -i dumper perl-Data-Dumper.x86_64 2.145-3.el7 base perl-Data-Dumper-Concise.noarch 2.020-6.el7 epel perl-Data-Dumper-Names.noarch 0.03-17.el7 epel perl-XML-Dumper.noarch 0.81-17.el7 base (模糊搜索perl 里面的dumper包) [root@chy01 mysql]# yum install -y perl-Data-Dumper.x86_64 (找到4个dumper包之后一个一个的测试,而后安装) [root@chy01 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql (当再次编译时发现不报错就证实安装的dumper包是正确的) [root@chy01 mysql]# echo $? 0 (编译后立刻用echo 测试,这个测试的前提是立刻就要测试中间不要有任何的其它操做) 第二种方法是编译后查看有没有(以下的两个ok,若有就证实成功了) OK Filling help tables...2017-07-26 08:23:02 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-07-26 08:23:02 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap. 2017-07-26 08:23:02 0 [Note] ./bin/mysqld (mysqld 5.6.35) starting as process 4652 ... 2017-07-26 08:23:02 4652 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-07-26 08:23:02 4652 [Note] InnoDB: The InnoDB memory heap is disabled 2017-07-26 08:23:02 4652 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-07-26 08:23:02 4652 [Note] InnoDB: Memory barrier is not used 2017-07-26 08:23:02 4652 [Note] InnoDB: Compressed tables use zlib 1.2.3 2017-07-26 08:23:02 4652 [Note] InnoDB: Using Linux native AIO 2017-07-26 08:23:02 4652 [Note] InnoDB: Using CPU crc32 instructions 2017-07-26 08:23:02 4652 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2017-07-26 08:23:02 4652 [Note] InnoDB: Completed initialization of buffer pool 2017-07-26 08:23:02 4652 [Note] InnoDB: Highest supported file format is Barracuda. 2017-07-26 08:23:02 4652 [Note] InnoDB: 128 rollback segment(s) are active. 2017-07-26 08:23:02 4652 [Note] InnoDB: Waiting for purge to start 2017-07-26 08:23:02 4652 [Note] InnoDB: 5.6.35 started; log sequence number 1625977 2017-07-26 08:23:02 4652 [Note] Binlog end 2017-07-26 08:23:02 4652 [Note] InnoDB: FTS optimize thread exiting. 2017-07-26 08:23:02 4652 [Note] InnoDB: Starting shutdown... 2017-07-26 08:23:04 4652 [Note] InnoDB: Shutdown completed; log sequence number 1625987 OK [root@chy01 mysql]# ls support-files/my-default.cnf support-files/my-default.cnf (如上是mysql的模板配置文件) [root@chy01 mysql]# cat /etc/my.cnf (mysql的配置文件就是/etc/my.cnf,若是要更改此位置就须要在启动时指定文件) [root@chy01 mysql]# rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_64 (系统下有一个默认的mysq是rpm安装的) [root@chy01 mysql]# cp support-files/my-default.cnf /etc/my.cnf cp:是否覆盖"/etc/my.cnf"? y (须要cp mysql配置文件到/etc/my.cnf下) [root@chy01 mysql]# cp support-files/mysql.server /etc/init.d/mysqld (cp support-files/mysql.server这个到/etc/init.d/mysqld(这个里面配置启动脚本) [root@chy01 mysql]# vi /etc/init.d/mysqld (增长以下两行配置) basedir=/usr/local/mysql(这里是mysql的主目录) datadir=/data/mysql(这是mysql的数据库目录) [root@chy01 mysql]# ls -l /etc/init.d/mysqld -rwxr-xr-x 1 root root 10902 7月 26 08:40 /etc/init.d/mysqld (查看权限是否为755) [root@chy01 mysql]# chkconfig --add mysqld(增长开机启动的选项) [root@chy01 mysql]# chkconfig --list 注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 若是您想列出 systemd 服务,请执行 'systemctl list-unit-files'。 欲查看对特定 target 启用的服务请执行 'systemctl list-dependencies [target]'。 mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关 [root@chy01 mysql]# /etc/init.d/mysqld start Starting MySQL.Logging to '/data/mysql/chy01.err'. . SUCCESS! (启动mysql第一种方法) [root@chy01 mysql]# service mysqld start Starting MySQL. SUCCESS! (启动mysql第二种方法) [root@chy01 mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & (第三种用命令行启动) [root@chy01 mysql]# ps -aux |grep mysql root 5570 0.0 0.1 113256 1584 pts/0 S 08:50 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql mysql 5673 0.2 29.7 973048 455708 pts/0 Sl 08:50 0:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/chy01.err --pid-file=/data/mysql/chy01.pid root 5721 0.0 0.0 112664 976 pts/0 R+ 08:53 0:00 grep --color=auto mysql [root@chy01 mysql]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2053/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2875/master tcp6 0 0 :::3306 :::* LISTEN 5673/mysqld tcp6 0 0 :::22 :::* LISTEN 2053/sshd tcp6 0 0 ::1:25 :::* LISTEN 2875/master (启动成功) [root@chy01 mysql]# killall mysqld (关闭由命令行启动的方式)
登陆mysql用户web
[root@chy01 mysql]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile (须要作mysql的环境变量,若是不作环境变量不能使用mysq命令) [root@chy01 mysql]# tail -n1 /etc/profile(查看增长环境变量的文件) export PATH=/usr/local/mysql/bin:$PATH [root@chy01 mysql]# source /etc/profile [root@chy01 mysql]# mysql -uroot (用root用户登陆测试一下) Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.35 MySQL Community Server (GPL) Copyright (c) 2000, 2016, 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> quit Bye
如上介绍了mysql的安装方法,以下是mariadb的安装方法,思路都是同样的。sql
[root@chy01 src]# cd /usr/local/src (进入到cd /usr/local/src 里面) [root@chy src]# wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz (将mariadb下载到/src目录下) [root@chy src]# tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz (解压包到/src目录下) [root@chy src]# mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb (移动mariadb到指定目录下) [root@chy src]# cd !$ cd /usr/local/mariadb (进入到mariadb目录下) [root@chy mariadb]# useradd -s /sbin/nologin -M mysql1 (增长mysql1用户而且不建立mysql1的家目录) [root@chy mariadb]# mkdir -p /data/mariadb (建立mariadb的数据库/data/) [root@chy mariadb]# chown -R mysql1 /data/mariadb (指定/data的属主为mysql1) [root@chy mariadb]# ./scripts/mysql_install_db --user=mysql1 --basedir=/usr/local/mariadb/ --datadir=/data/mariadb (初始化mariadb,初始化这里须要注意一个问题就是--basedir这里是basedir并非datadir的缘由是以前在虚拟机上装过另外一个数据库mysql,那个数据库定义的是datadir,因此这边定义时就要注意这个问题) [root@chy mariadb]# echo $? 0 (测试的第一种方法成功) [root@chy mariadb]# ./scripts/mysql_install_db --user=mysql1 --basedir=/usr/local/mariadb/ --datadir=/data/mariadb Installing MariaDB/MySQL system tables in '/data/mariadb' ... OK (看是否成功能够看过程当中是否有OK字样,有证实成功) [root@chy mariadb]# ls support-files/ binary-configure my-large.cnf mysql-log-rotate wsrep_notify magic my-medium.cnf mysql.server my-huge.cnf my-small.cnf policy/ my-innodb-heavy-4G.cnf mysqld_multi.server wsrep.cnf (进入到mariadb下能够看到和mysql模板配置文件不同的地方。在mariadb中这几个配置不同的地方最大的区别是缓存大小) [root@chy mariadb]# cp support-files/my-small.cnf /usr/local/mariadb/my.cnf (拷贝最小的模板配置文件到/usr/local/mariadb/my.cnf (这里须要注意由于以前有my.cnf是属于mysql的因此这里就不能在将模板配置文件cp到my.cnf只能将配置文件cp到/usr/local/mariadb目录下取名为my.cnf) [root@chy mariadb]# cp support-files/mysql.server /etc/init.d/mariadb (而且拷贝启动脚本到/etc/init.d/mariadb目录下) [root@chy mariadb]# vim /usr/local/mariadb/my.cnf (此配置文件根据本身需求改动便可) [root@chy mariadb]# vim /etc/init.d/mariadb (增长mariadb的启动脚本,以下内容) basedir=/usr/local/mariadb datadir=/data/mariadb conf=$basedir/my.cnf (这里增长完成后,还要找到启动脚本在启动脚本中在增长一行内容) case "$mode" in 'start') # Start daemon # Safeguard (relative paths, core dumps..) cd $basedir echo $echo_n "Starting MySQL" if test -x $bindir/mysqld_safe then # Give extra arguments to mysqld with the my.cnf file. This script # may be overwritten at next upgrade. $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" & wait_for_ready; return_value=$? (找到这一行内容在$bindir/mysqld_safe 与--datadir="$datadir"中间增长一行--defaults-file="$conf") $bindir/mysqld_safe --defaults-file="$conf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" & (增长的意思是增长它的启动脚本) 这里启动时报错: [root@chy ~]# /etc/init.d/mariadb start Starting mariadb (via systemctl): Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details. [失败] 解决方法: [root@chy mariadb]# vim /etc/my.cnf [mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16K max_allowed_packet = 1M table_open_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 240K user=mysql1(增长一行是由于个人用户是mysql1) 解决的文档:http://www.debugrun.com/a/o5rqKfE.html (此文档能够查思路)
Apache官网 http://www.apache.org数据库
[root@chy src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.26.tar.gz [root@chy src]# wget http://mirrors.hust.edu.cn/apache/apr/apr-1.5.2.tar.gz [root@chy src]# wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.5.4.tar.gz (下载3个包,其中有两个包是qpr包和apr-util,以下是区别:apache 2.2和2.4的安装是有区别的,区别在于:2.4须要安装apr与apr-util函数库,与2.2的数据库是不同的) apr和apr-util是一个通用的函数库,它让httpd能够不关心底层的操做系统平台,能够很方便地移植(从linux移植到windows) ) [root@chy src]# tar zxvf httpd-2.4.26.tar.gz [root@chy src]# tar zxvf apr-util-1.5.4.tar.gz [root@chy src]# tar zxvf apr-1.5.2.tar.gz (解压三个包) [root@chy src]# cd apr-1.5.2/ (首先安装apr) [root@chy apr-1.5.2]# ./configure --prefix=/usr/local/apr [root@chy apr-1.5.2]# echo $? 0 [root@chy apr-1.5.2]# make && make install [root@chy apr-1.5.2]# echo $? 0 [root@chy apr-1.5.2]# cd /usr/local/src/apr-util-1.5.4 (而后安装util) [root@chy apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr (编译安装) [root@chy apr-util-1.5.4]# echo $? 0 [root@chy apr-util-1.5.4]# make && make install [root@chy apr-util-1.5.4]# echo $? 0(编译成功) [root@chy apr-util-1.5.4]# cd /usr/local/src/httpd-2.4.26 (最后开始编译httpd) [root@chy httpd-2.4.26]#./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most (这里报了一个错误checking for pcre-config... false configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/) [root@chy httpd-2.4.26]# yum list |grep pcre pcre.x86_64 8.32-15.el7_2.1 @anaconda pcre.i686 8.32-15.el7_2.1 base pcre-devel.i686 8.32-15.el7_2.1 base pcre-devel.x86_64 8.32-15.el7_2.1 base pcre-static.i686 8.32-15.el7_2.1 base pcre-static.x86_64 8.32-15.el7_2.1 base pcre-tools.x86_64 8.32-15.el7_2.1 base (查看有关pcre的包后安装,pcre-devel的由于咱们用的是库) [root@chy httpd-2.4.26]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most (再次编译时,看有没有错误) [root@chy httpd-2.4.26]# echo $? 0 (编译成功) [root@chy httpd-2.4.26]# make && make install [root@chy httpd-2.4.26]# echo $? 0 (编译成功) [root@chy httpd-2.4.26]# /usr/local/apache2.4/bin/httpd -M =[root@chy apache2.4]# /usr/local/apache2.4/bin/apachectl -M (查看apache加载的模块) [root@chy httpd-2.4.26]# /usr/local/apache2.4/bin/apachectl start AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::338e:589c:fa07:65e5. Set the 'ServerName' directive globally to suppress this message [root@chy httpd-2.4.26]# ps aux |grep httpd root 42811 0.0 0.1 95476 2532 ? Ss 15:47 0:00 /usr/local/apache2.4/bin/httpd -k start daemon 42812 0.0 0.2 382304 4428 ? Sl 15:47 0:00 /usr/local/apache2.4/bin/httpd -k start daemon 42813 0.0 0.2 382304 4428 ? Sl 15:47 0:00 /usr/local/apache2.4/bin/httpd -k start daemon 42814 0.0 0.2 382304 4428 ? Sl 15:47 0:00 /usr/local/apache2.4/bin/httpd -k start root 42897 0.0 0.0 112664 972 pts/0 R+ 15:48 0:00 grep --color=auto httpd (查看进程,启动成功) 编译内容详解: ./configure \ //这里的反斜杠是脱义字符,加上它咱们能够把一行命令写成多行 --prefix=/usr/local/apache2.4 \(指定apache路径) --with-apr=/usr/local/apr \(指定apacehe apr) --with-apr-util=/usr/local/apr-util \(指定apache apr-util) --enable-so \ (此参数支持动态扩展模块,模块是一个为.so的文件) --enable-mods-shared=most(加载大多数使用的模块) [root@chy apache2.4]# ls bin/httpd bin/httpd (apache启动文件) [root@chy apache2.4]# ls conf/ extra httpd.conf magic mime.types original (apache配置文件) [root@chy apache2.4]# ls htdocs/ index.html (存放访问页) [root@chy apache2.4]# ls logs/ access_log error_log httpd.pid (apache日志存在的目录) [root@chy apache2.4]# ls modules/ httpd.exp mod_buffer.so mod_lbmethod_heartbeat.so mod_request.so mod_access_compat.so mod_cache_disk.so mod_log_config.so mod_rewrite.so mod_actions.so mod_cache.so mod_log_debug.so mod_sed.so mod_alias.so mod_cache_socache.so mod_logio.so mod_session_cookie.so (此目录是存放模块的,模块分为静态模块动态模块,二者的区别为静态将模块编译进了主二进制文件里/bin/httpd里,扩展模块是一个.so的文件,此文件在[root@chy apache2.4]# ls /usr/local/apache2.4/modules/ 里面。
apache 设置开机自启apache
[root@chy ~]# cp /usr/local/apache2.4/bin/apachectl /etc/init.d/apache2 (首先须要将apache的启动文档cp到/etc/inid.d的目录下,apache2的名称是本身取的,这个名称没有特定要求) [root@chy ~]# vim /etc/init.d/apache2 (而后编辑此内容) # chkconfig: 35 20 80 #description: Apache2 (增长这两行内容,第一行后面的3个数字的意思分别是:在哪些运行级别启动apache(3,5);启动序号(S20);关闭序号(K80)。 3和5也就是说在第三启动级别和第五启动级别的时候会默认启动apache 20就是指系统起来的时候有不少的服务须要启动,而这个程序排在第二十位启动,以此类推 80就是指系统关闭的时候,这个服务顺序排在第80位关闭 注意:这2行缺一不可,#号不能省略,必定要有) [root@chy ~]# chkconfig --add apache2 (增长到开机自启,这里的apache2要与以前的/etc/init.d/apache2的名称一致) [root@chy ~]# netstat -antp |grep 80 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1980/sshd tcp6 0 0 :::80 :::* LISTEN 2596/httpd tcp6 0 0 :::22 :::* LISTEN 1980/sshd (测试能够看到启动了httpd)
php 官网 http://www.php.netbootstrap
[root@chy src]# wget http://cn2.php.net/distributions/php-5.6.30.tar.gz (下载php包) [root@chy src]# tar zxvf php-5.6.30.tar.gz (解压php包) [root@chy src]# cd php-5.6.30 (进入到Php) [root@chy php-5.6.30]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mariadb --with-pdo-mysql=/usr/local/mariadb --with-mysqli=/usr/local/mariadb/bin/mariadb_config --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 (编译时出现了第一个问题,checking for RAND_egd... no checking for pkg-config... /usr/bin/pkg-config configure: error: Cannot find OpenSSL's <evp.h> 解决方法:[root@chy php-5.6.30]# yum install -y openssl-devel.x86_64 第二个问题checking for BZip2 in default path... not found configure: error: Please reinstall the BZip2 distribution 解决方法:[root@chy php-5.6.30]# yum install -y bzip2-devel.x86_64 第三个问题hecking whether to enable JIS-mapped Japanese font support in GD... no If configure fails try --with-vpx-dir=<DIR> configure: error: jpeglib.h not found. 解决方法:[root@chy php-5.6.30]# yum install -y libjpeg-devel 第四个问题:If configure fails try --with-xpm-dir=<DIR> configure: error: freetype-config not found. 解决方法:[root@chy php-5.6.30]# yum install -y freetype-devel.x86_64 ) 第五个问题:checking for mcrypt support... yes configure: error: mcrypt.h not found. Please reinstall libmcrypt. 解决方法:[root@chy php-5.6.30]# yum install epel-release 而后在安装:[root@chy php-5.6.30]# yum install libmcrypt [root@chy php-5.6.30]# yum install libmcrypt-devel (最后安装此包) 第六个问题:configure: error: Cannot find libmysqlclient_r under /usr/local/mariadb. Note that the MySQL client library is not bundled anymore! 解决方法: [root@chy php-5.6.30]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --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 (编译的时候,不加--with-mysql=/usr/local/mariadb --with-pdo-mysql=/usr/local/mariadb --with-mysqli=/usr/local/mariadb/bin/mariadb_config (去掉这些配置) [root@chy php-5.6.30]# make && make install (make 与make install) [root@chy php-5.6.30]# echo $? 0 (检测成功) [root@chy php-5.6.30]# cp php.ini-production /usr/local/php/etc/php.ini (而后cp配置文件到 /etc/php.ini下 ) [root@chy php-5.6.30]# ls /usr/local/php/ bin etc include lib php (php目录的文件) [root@chy php-5.6.30]# ls /usr/local/php/bin/ pear peardev pecl phar phar.phar php php-cgi php-config phpize (php的配置文件) [root@chy php-5.6.30]# du -sh /usr/local/apache2.4/modules/libphp5.so 36M /usr/local/apache2.4/modules/libphp5.so (此文件是php与apache结合的文件) [root@chy php-5.6.30]# /usr/local/php/bin/php -m (查看php的模块) [root@chy php-5.6.30]# cp php php5.spec php5.spec.in php.gif php.ini-development php.ini-production (php.ini-development php.ini-production这两个文件的区别在于php.ini-development 它在测试环境中运行,php.ini-production线上的环境中运行)
[root@chy src]# wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2 [root@chy src]# tar jxf php-7.1.6.tar.bz2 (解压包) [root@chy src]# cd php-7.1.6 [root@chy php-7.1.6]# ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php7/etc --with-mariadb=/usr/local/mariadb --with-mariadbi=/usr/local/mariadb/bin/mariadb_config --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 而后后make && make install
mysql与php的版本根据本身的需求看着装便可,我是由于要作实验就都安装了而已。
小提示:如上的操做是基于centos7操做系统。vim