CC00046.LinuxNetwork——|Linux&Centos7.x&LAMP&Typecho.V03|——|编译MySQL|编译PHP|

一、安装MySQL
### --- mysql依赖:安装ncurses
### --- 安装ncurses
~~~		Ncurses提供字符终端处理库,包括面板和菜单,它提供了要控制光标,
~~~		建立窗口,改变前景背景颜色以及处理鼠标操作的函数。
~~~		使用户在字符中高端下编写应用程序时绕过了那些烦人的底层机制,
~~~		简而言之,它是一个可以使用应用程序直接控制终端屏幕显示的函数库。
~~~		若不安装ncurses编译MySQL时会报错

[root@server11 ~]# yum install -y ncurses-devel
cd /lamp/ncurses-5.9
[root@server11 ~]# cd /lamp/ncurses-5.9
[root@server11 ncurses-5.9]# ./configure --with-shared --without-debug --without-ada --enable-overwrite && make && make install
[root@server11 ncurses-5.9]# echo $?
0
### --- mysql依赖:安装cmake和bison
### --- 安装cmake 和bison
~~~		mysql在5.5以后(属于oracle公司),不再使用./configure工具,
~~~		进行编译安装,而是用cmake工具替代了./configure工具,bison是一个自由软件,
~~~		用于自动生成语法解析器程序,可用于所有常见的操作系统

[root@server11 ~]#  yum install -y cmake bison
### --- 安装mysql

[root@server11 ncurses-5.9]# cd /lamp/mysql-5.5.48
[root@server11 mysql-5.5.48]# useradd -r -s /sbin/nologin mysql
~~~		为MySQL软件创建运行用户,创建为系统用户,并限制此用户登录操作系统

[root@server11 mysql-5.5.48]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
> -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITN_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 \
> -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
-- Build files have been written to: /lamp/mysql-5.5.48
[root@server11 mysql-5.5.48]# echo $?
0
[root@server11 mysql-5.5.48]# make && make install
-- Installing: /usr/local/mysql/man/man8/mysqld.8
[root@server11 mysql-5.5.48]# echo $?
0
### --- 辅助命令:
~~~		选项解释:
~~~		-DCMAKE_INSALL_PREFIX=/usr/local/mysql      安装位置
~~~		-DMYSQL_UNIX_ADDR=/tmp/mysql.sock           指定socket(套接字)文件位置
~~~		-DEXTRA_CHARSETS=all                        扩展字符支持
~~~		-DDEFAULT_CHARSET=utf8                      默认字符集
~~~		-DDEFAULT_COLATION=utf9_general_ci          默认自否校对
~~~		-DWITH_MYISAM_STORAGE_ENGINE=1              安装myisam存储引擎
~~~		-DWITH_INNOBASE_STORAGE_ENGINE=1            安装innodb存储引擎
~~~		-DWITH_MEMORY_STORAGE_ENGINE=1              安装memory存储引擎
~~~		-DWITH_READLINE=1                           支持readline库
~~~		-DENABLED_LOCAL_INFILE=1                    启动加载本地数据
~~~		-DMYSQL_USER=mysql                          指定mysql运行用户
~~~		-DMYSQL_TCP_PORT=3306                       指定MySQL端口

[root@server11 mysql-5.5.48]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITN_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
### --- MYSQL安装后需要调整相应配置文件和参数才能正常运行
~~~		修改MySQL目录的用户归属

[root@server11 mysql-5.5.48]# cd /usr/local/mysql
[root@server11 mysql]# chown -R root .                                      //将mysql安装目录所有者改为root
[root@server11 mysql]# chown -R mysql data/                                 //把data目录所有者改为root
### --- 生成配置文件,并初始化授权表

[root@server11 mysql]# cp -a /lamp/mysql-5.5.48/support-files/my-medium.cnf /etc/my.cnf
~~~		复制MySQL配置文件到指定位置,覆盖掉系统自带文件
~~~		创建数据库授权表,初始化数据库,相当于安装完操作系统后的引导设置(添加第一个用户)

[root@server11 mysql]# cd /usr/local/mysql
[root@server11 mysql]# ./scripts/mysql_install_db  --user=mysql             //两个进程启动成功:说明初始化ok
210209 19:01:56 [Note] ./bin/mysqld (mysqld 5.5.48-log) starting as process 115823 ...
OK
Filling help tables...
210209 19:01:57 [Note] ./bin/mysqld (mysqld 5.5.48-log) starting as process 115830 ...
OK
### --- 报错提示:
~~~		FATAL ERROR:Could not find ./bin/my_print_defaults

### --- 原因:
~~~		mysql_install_db初始化所调用文件时使用的是相对路径,
~~~		路径不在/usr/local/mysql时,是无法调用my_print_defaults文件并初始化成功的。
### --- 启动MySQL服务
~~~		用原本源代码的方式去使用和启动mysql 

[root@server11 mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql &        //&:表示后台启动运行的意思
[1] 113593
[root@server11 mysql]# netstat -antp
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      116116/mysqld//12.4、设定MySQL密码:
[root@server11 mysql]# /usr/local/mysql/bin/mysqladmin -uroot password 123456
### --- 登录MySQL

[root@server11 mysql]# /usr/local/mysql/bin/mysql -u root -p
Enter password: 123456
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit
Bye
二、安装PHP
### --- 安装PHP

[root@server11 mysql]# cd /lamp/php-7.0.7
[root@server11 php-7.0.7]# ./configure --prefix=/usr/local/php/  --with-config-file-path=/usr/local/php/etc/ \
> --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2/ \
> --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ \
> --with-freetype-dir=/usr/local/freetype/ --with-mcrypt=/usr/local/libmcrypt/ \
> --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all \
> --enable-sockets --with-pdo-mysql=/usr/local/mysql --with-gd  --without-pear

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+
Thank you for using PHP.
config.status: creating php7.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
configure: WARNING: unrecognized options: --without-pearmake
[root@server11 php-7.0.7]# echo $?
0
[root@server11 php-7.0.7]# make && make install
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/php/lib/php/
[PEAR] Archive_Tar    - installed: 1.4.0
[PEAR] Console_Getopt - installed: 1.4.1
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util       - installed: 1.3.0
[PEAR] PEAR           - installed: 1.10.1
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
/lamp/php-7.0.7/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f phar.phar /usr/local/php/bin/phar
Installing PDO headers:           /usr/local/php/include/php/ext/pdo/
[root@server11 php-7.0.7]# echo $?
0
### --- 辅助文本:
### --- 选项详解:

~~~		--with-config-file-path=/usr/local/php/etc/         指定配置文件目录
~~~		--with-apxs2=/usr/local/apache2/bin/apx2            指定Apache动态模块位置
~~~		--with-libxml-dir=/usr/local/libxml2                指定libxml位置
~~~		--with-jpeg-dir=/usr/local/jpeg6/                   指定jpeg位置
~~~		--with-peng-dir=/usr/local/freetype                 指定freetype位置
~~~		--with-mcrypt=/usr/local/libmcrypt                  指定libmcrypt位置
~~~		--with-mysqli=/usr/local/mysql/bin/mysql_config     指定mysqli位置
~~~		--with-dg                                           启用gd库
~~~		--enable-soap                                       支持soap服务
~~~		--enable-mbstring=all                               支持多字节,字符串
~~~		--enable-sockets                                    支持套接字
~~~		-with-pdo-mysql=/usr/local/mysql                    启用mysql的pdo模块支持
~~~		--without-pear                                      不安装pear(安装pear需要连接互联网)

[root@server11 php-7.0.7]# ./configure --prefix=/usr/local/php/  --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql --with-gd  --without-pear
### --- PHP安装后需要调整相应配置文件和参数才能正常运行
~~~		生成PHP配置文件

[root@server11 php-7.0.7]# mkdir /usr/local/php/etc
[root@server11 php-7.0.7]# cp /lamp/php-7.0.7/php.ini-production /usr/local/php/etc/php.ini
### --- 修改Apache配置文件,使其识别*.php文件,并能通过PHP模块调用PHP进行页面解析

[root@server11 php-7.0.7]# vim /usr/local/apache2/etc/httpd.conf
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz                                     //默认就有
    AddType application/x-httpd-php .php .phtml                             //添加这行内容
    AddType application/x-httpd-php-source .phps                            //添加这行内容
### --- 测试PHP页面是否能正常解析(即Apache和PHP连通性

[root@server11 php-7.0.7]# vim /usr/local/apache2/htdocs/test.php
<?php   
        phpinfo();
?>                                                                          // ?>结尾,也可以不写这一行,不受影响
### --- 重启Apache服务
[root@server11 php-7.0.7]# /usr/local/apache2/bin/apachectl stop
[root@server11 php-7.0.7]# /usr/local/apache2/bin/apachectl start

### --- 验证一:通过浏览器输入地址访问:http://Apache服务器地址/test.php
~~~		可以正常访问PHP调用的函数//说明Apache和PHP连接成功;
~~~		能够显示页面说明PHP部署及与Apache关联成功,若是现实test.php文件内容,
~~~		说明PHP没有安装。
http://10.10.10.11/test.php
### --- 验证二:Apache配置文件中查看
~~~		有这句配置出现说明PHP时可以正常解析的。

[root@server11 php-7.0.7]# vim /usr/local/apache2/etc/httpd.conf
LoadModule php7_module        modules/libphp7.so
三、PHP默认页面
四、为PHP安装openssl模块
### --- 为PHP安装openssl模块
~~~		openssl是一个强大的安全套接字层密码框,囊括主要的密码算法,
~~~		常用的秘钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其他目的使用。

[root@server11 php-7.0.7]# cd /lamp/php-7.0.7/ext/openssl
[root@server11 openssl]# mv config0.m4 config.m4
[root@server11 openssl]# /usr/local/php/bin/phpize                          //使用该命令来帮助我们把openssl里面的文件编译
Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012          
[root@server11 openssl]# ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config && make && make install
Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20151012/
[root@server11 openssl]# echo $?
0
五、为PHP安装memcache模块
### --- 为PHP安装memcache模块
~~~		Memcached是一个高性能的分布式的内存对象缓存系统,
~~~		通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,
~~~		包括图像,视频,文件以及数据库检索的结果等。
~~~		简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

[root@server11 ~]# cd /lamp/pecl-memcache-php7/
[root@server11 pecl-memcache-php7]# /usr/local/php/bin/phpize               //将所需要的文件调用过来
Configuring for:
PHP Api Version:         20151012
Zend Module Api No:      20151012
Zend Extension Api No:   320151012
[root@server11 pecl-memcache-php7]# ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install
Build complete.
Don't forget to run 'make test'.
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20151012/
[root@server11 pecl-memcache-php7]# echo $?
0
[root@server11 pecl-memcache-php7]# ll /usr/local/php/lib/php/extensions/no-debug-zts-20151012/
total 1648
-rwxr-xr-x 1 root root 250728 Feb  9 19:38 memcache.so
-rwxr-xr-x 1 root root 904632 Feb  9 19:16 opcache.so
-rwxr-xr-x 1 root root 525216 Feb  9 19:27 openssl.so
六、修改PHP配置文件,使其识别并调用openssl和memcached两个模块
### --- 修改PHP配置文件,使其识别并调用openssl和memcached两个模块

[root@server11 pecl-memcache-php7]# vim /usr/local/php/etc/php.ini                           //最末尾添加下列内容
extension_dir="/usr/local/php/lib/php/extensions/no-debug-zts-20151012/"
#取消分号注释,并添加以上路径(此路径来自于模块安装命令的结果)
extension="openssl.so";
extension="memcache.so";
~~~		添加以上两个库文件的调用
~~~		重启Apache,刷新phpinfo页面,并查看是否有两个新增的模块
~~~		默认页面是下列16.1、标题图展示
~~~		重启Apache后展示效果16.2openssl模块被匹配调用展示

[root@server11 ~]# /usr/local/apache2/bin/apachectl restart
默认的模块;memcache是查不到的
openssl模块被匹配调用展示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值