当前位置: > Linux发行版 > Fedora >

fedora 20 源码编译安装最新版 mysql apache2 php

时间:2015-12-18 12:29来源:linux.it.net.cn 作者:IT
fedora 20 源码编译安装最新版 mysql apache2 php


 

 

mysql apache2 php 默认都是安装在 /usr/local 目录下面的.
/usr/local/mysql
/usr/local/apache2
/usr/local/php

我新建了一个 /server 目录, 把它们都安装在这个目录下面, 方便管理.
/server/mysql
/server/apache2
/server/php
 

1. 先安装 mysql 和 apache2 的依赖包, 解决好依赖问题, 省的配置是出问题

 

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. [kuaile@kuailepc ~]$ sudo yum-builddep install community-mysql-serversudo       //安装mysql的依赖包  
  2. [kuaile@kuailepc ~]$ sudo yum-builddep install apache                           //安装apache的依赖包  
yum-builddep 这个工具很强大 , 自动把软件包的依赖全部安装完毕. 不用自己慢慢一个一个安装.

 

 

2. 安装mysql

创建mysql组和mysql用户

 


 
  1. [kuaile@kuailepc ~]$ sudo groupadd mysql  
  2. [kuaile@kuailepc ~]$ sudo useradd -r -g mysql mysql  

解压源码并进入到其目录

 

 


 
  1. [kuaile@kuailepc ~]$ cd /home/kuaile/bd  
  2. [kuaile@kuailepc bd]$ ls  
  3. apache-tomcat-8.0.0-RC10-src.tar.gz  nginx-1.4.4.tar.gz  
  4. apache-tomcat-8.0.0-RC10.tar.gz      php-5.5.8.tar.gz  
  5. httpd-2.4.7.tar.gz                   postgresql-9.3.2.tar.bz2  
  6. mariadb-5.5.34.tar.gz                resin-4.0.38-src.zip  
  7. mysql-5.6.15.tar.gz                  subversion-1.8.5.tar.gz  
  8. [kuaile@kuailepc bd]$ tar zxvf mysql-5.6.15.tar.gz  
  9. [kuaile@kuailepc bd]$ cd /home/kuaile/bd/mysql-5.6.15  
  10. [kuaile@kuailepc mysql-5.6.15]$ ls  
  11. BUILD            dbug                 libmysqld    regex          unittest  
  12. BUILD-CMAKE      Docs                 libservices  scripts        VERSION  
  13. client           Doxyfile-perfschema  man          sql            vio  
  14. cmake            extra                mysql-test   sql-bench      win  
  15. CMakeLists.txt   include              mysys        sql-common     zlib  
  16. cmd-line-utils   INSTALL-SOURCE       mysys_ssl    storage  
  17. config.h.cmake   INSTALL-WIN-SOURCE   packaging    strings  
  18. configure.cmake  libevent             plugin       support-files  
  19. COPYING          libmysql             README       tests  

 

设置编译优化参数


 
  1. [kuaile@kuailepc mysql-5.6.15]$ export CFLAGS="-O2 -mtune=corei7 -march=corei7"  
  2. [kuaile@kuailepc mysql-5.6.15]$ export CXXFLAGS="-O2 -mtune=corei7 -march=corei7"  
这是我自己根据自己的cpu而设定的优化参数,并不通用,

 


下面的更通用一点,让gcc自己检测cpu,自己根据cpu优化

 
  1. [kuaile@kuailepc mysql-5.6.15]$ export CFLAGS="-O2 -mtune=native -march=native"  
  2. [kuaile@kuailepc mysql-5.6.15]$ export CXXFLAGS="-O2 -mtune=native -march=native"  

下面俩条命令可以参看到 -mtune=native -march=native 的具体优化参数的值

 

 


 
  1. //查看 -march=native 的值  
  2. [kuaile@localhost ~]$  gcc -march=native -E -v - </dev/null 2>&1 | grep cc1        
  3.  /usr/libexec/gcc/x86_64-redhat-linux/4.8.2/cc1 -E -quiet -v - -march=corei7 -mcx16 -msahf -mno-movbe -mno-aes -mno-pclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-bmi2 -mno-tbm -mno-avx -mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt -mno-rtm -mno-hle -mno-rdrnd -mno-f16c -mno-fsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mno-xsave -mno-xsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=4096 -mtune=corei7  
  4.   
  5. //查看 -mtune=native 的值  
  6. [kuaile@localhost ~]$  gcc -mtune=native -E -v - </dev/null 2>&1 | grep cc1  
  7.  /usr/libexec/gcc/x86_64-redhat-linux/4.8.2/cc1 -E -quiet -v - --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=4096 -mtune=corei7 -march=x86-64  

 

配置编译选项

 


 
  1. [kuaile@kuailepc mysql-5.6.15]$ cmake . \  
  2. > -DCMAKE_INSTALL_PREFIX=/server/mysql \               //设置mysql的安装目录为/server/mysql. 默认的是/usr/local/mysql  
  3. > -DMYSQL_DATADIR=/server/mysqldata \                  //设置mysql数据的目录为/server/mysqldata. 默认是在mysql的安装目录下面  
  4. > -DSYSCONFDIR=/etc                                    //设置mysql配置文件my.cnf所在目录是/etc. 默认是mysql的安装目录下面  
  5. -- Running cmake version 2.8.12.1                      //mysql 默认的生成的配置文件就在安装目录下面, 需要拷贝到 /etc 目录下面   
  6. -- The C compiler identification is GNU 4.8.2  
  7. -- The CXX compiler identification is GNU 4.8.2  
  8.     ......  
  9. -- Library mysqlserver depends on OSLIBS -lpthread;m;crypt;dl;aio  
  10. -- Configuring done  
  11. -- Generating done  
  12. -- Build files have been written to: /home/kuaile/bd/mysql-5.6.15  
  13. // 开始编译  
  14. [kuaile@kuailepc mysql-5.6.15]$ make -j4                   //-j4 四线程编译, 默认是1线程的, -j 是让make程序自己确定线程数  
  15. Scanning dependencies of target INFO_BIN  
  16. Scanning dependencies of target INFO_SRC  
  17. Scanning dependencies of target abi_check  
  18. Scanning dependencies of target zlib  
  19. [  0%] [  0%] Building C object zlib/CMakeFiles/zlib.dir/adler32.c.o  
  20. Built target INFO_SRC  
  21. Scanning dependencies of target yassl  
  22. [  0%] Built target INFO_BIN  
  23.     ...  
  24. Linking CXX executable pfs_connect_attr-t  
  25. [100%] Built target mysqld  
  26. Scanning dependencies of target udf_example  
  27. [100%] Building CXX object sql/CMakeFiles/udf_example.dir/udf_example.cc.o  
  28. [100%] Built target pfs_connect_attr-t  
  29. Linking CXX shared module udf_example.so  
  30. [100%] Built target udf_example  
  31.   
  32. [kuaile@kuailepc mysql-5.6.15]$ sudo make install          //编译完成数安装  
  33. [  0%] Built target INFO_BIN  
  34. [  0%] Built target INFO_SRC  
  35. [  0%] Built target abi_check  
  36.     ...  
  37. -- Installing: /server/mysql/man/man1/mysql-stress-test.pl.1  
  38. -- Installing: /server/mysql/man/man1/mysql_config_editor.1  
  39. -- Installing: /server/mysql/man/man8/mysqld.8  
  40. -- Installing: /server/mysql/support-files/solaris/postinstall-solaris  
  41. [kuaile@kuailepc mysql-5.6.15]$   
  42.   
  43. [kuaile@kuailepc mysql-5.6.15]$ cd /server/mysql/  
  44. [kuaile@kuailepc mysql]$ ls  
  45. bin      data  include         lib  mysql-test  scripts  sql-bench  
  46. COPYING  docs  INSTALL-BINARY  man  README      share    support-files  
  47. [kuaile@kuailepc mysql]$ sudo chown -R mysql .                                //更改mysql的安装目录所有者为mysql  
  48. [kuaile@kuailepc mysql]$ sudo chgrp -R mysql .                                //更改mysql的安装目录所有组为mysql  
  49. // 初始化mysql的数据库, 不是默认目录的需要添加参数 --datadir=/server/mysqldata 指定目录  
  50. [kuaile@kuailepc mysql]$ sudo scripts/mysql_install_db --user=mysql --datadir=/server/mysqldata  
  51.   
  52. 1625987  
  53. OK  
  54.   
  55. To start mysqld at boot time you have to copy  
  56. support-files/mysql.server to the right place for your system  
  57.   
  58. PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !  
  59. To do so, start the server, then issue the following commands:  
  60.   
  61.   ./bin/mysqladmin -u root password 'new-password'                                 
  62.   ./bin/mysqladmin -u root -h kuailepc password 'new-password'  
  63.   
  64. Alternatively you can run:  
  65.   
  66.   ./bin/mysql_secure_installation  
  67.   
  68. which will also give you the option of removing the test  
  69. databases and anonymous user created by default.  This is  
  70. strongly recommended for production servers.  
  71.   
  72. See the manual for more instructions.  
  73.   
  74. You can start the MySQL daemon with:  
  75.   
  76.   cd . ; ./bin/mysqld_safe &  
  77.   
  78. You can test the MySQL daemon with mysql-test-run.pl  
  79.   
  80.   cd mysql-test ; perl mysql-test-run.pl  
  81.   
  82. Please report any problems with the ./bin/mysqlbug script!  
  83.   
  84. The latest information about MySQL is available on the web at  
  85.   
  86.   http://www.mysql.com  
  87.   
  88. Support MySQL by buying support/licenses at http://shop.mysql.com  
  89.   
  90. New default config file was created as ./my.cnf and  
  91. will be used by default by the server when you start it.  
  92. You may edit this file to change server settings  
  93.   
  94. [kuaile@kuailepc mysql]$   
  95.   
  96. [kuaile@kuailepc mysql]$ sudo chown -R root .              //更改mysql的安装目录所有者为root  
  97. [kuaile@kuailepc mysql]$ cd /server  
  98. [kuaile@kuailepc server]$ ls  
  99. mysql  mysqldata  
  100. [kuaile@kuailepc server]$ chown -R mysql mysqldata         //更改mysql的数据库目录所有者为mysql  
  101. [kuaile@kuailepc server]$ cd mysql  
  102. [kuaile@kuailepc mysql]$ ls  
  103. in      data  include         lib  mysql-test  scripts  sql-bench  
  104. COPYING  docs  INSTALL-BINARY  man  README      share    support-files  
  105. [kuaile@kuailepc mysql]$ sudo support-files/mysql.server start       //启动mysql服务  
  106. [sudo] password for kuaile:   
  107. Starting MySQL.                                            [  确定  ]  
  108. [kuaile@kuailepc mysql]$   
  109. [kuaile@kuailepc mysql]$ ./bin/mysqladmin -u root password 'like#girls&boys'   // 设定mysql的root的密码  
  110. //[kuaile@kuailepc mysql]$ ./bin/mysqladmin -u root -h localhost password 'like#girls&boys'  
  111. [kuaile@kuailepc mysql]$   
  112. [kuaile@kuailepc mysql]$ sudo ./bin/mysql_secure_installation      //运行mysql的安全设置  
  113. [sudo] password for kuaile:   
  114.   
  115.   
  116.   
  117. NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL  
  118.       SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!  
  119.   
  120. In order to log into MySQL to secure it, we'll need the current  
  121. password for the root user.  If you've just installed MySQL, and  
  122. you haven't set the root password yet, the password will be blank,  
  123. so you should just press enter here.  
  124.   
  125. Enter current password for root (enter for none):                    //根据提示输入刚才设置的root的密码, 没设置的就直接回车        
  126. OK, successfully used password, moving on...                                 
  127.   
  128. Setting the root password ensures that nobody can log into the MySQL  
  129. root user without the proper authorisation.  
  130.   
  131. You already have a root password set, so you can safely answer 'n'.  
  132.   
  133. Change the root password? [Y/n] y                          //是否更改密码, 是的输入俩次新的密码  
  134. New password:   
  135. Re-enter new password:   
  136. Password updated successfully!  
  137. Reloading privilege tables..  
  138.  ... Success!  
  139.   
  140.   
  141. By default, a MySQL installation has an anonymous user, allowing anyone  
  142. to log into MySQL without having to have a user account created for  
  143. them.  This is intended only for testing, and to make the installation  
  144. go a bit smoother.  You should remove them before moving into a  
  145. production environment.  
  146.   
  147. Remove anonymous users? [Y/n] y                            //是否移除 anonymous 用户  
  148.  ... Success!  
  149.   
  150. Normally, root should only be allowed to connect from 'localhost'.  This  
  151. ensures that someone cannot guess at the root password from the network.  
  152.   
  153. Disallow root login remotely? [Y/n] y                      //是否不允许root远程登陆  
  154.  ... Success!  
  155.   
  156. By default, MySQL comes with a database named 'test' that anyone can  
  157. access.  This is also intended only for testing, and should be removed  
  158. before moving into a production environment.  
  159.   
  160. Remove test database and access to it? [Y/n] y             //是否删除测试数据  
  161.  - Dropping test database...  
  162.  ... Success!  
  163.  - Removing privileges on test database...  
  164.  ... Success!  
  165.   
  166. Reloading the privilege tables will ensure that all changes made so far  
  167. will take effect immediately.  
  168.   
  169. Reload privilege tables now? [Y/n] y                       //是否重载授权表  
  170.  ... Success!  
  171.   
  172.   
  173.   
  174.   
  175. All done!  If you've completed all of the above steps, your MySQL  
  176. installation should now be secure.  
  177.   
  178. Thanks for using MySQL!  
  179.   
  180.   
  181. Cleaning up...  
  182.   
  183. [kuaile@kuailepc mysql]$   
  184. [kuaile@kuailepc mysql]$ sudo support-files/mysql.server stop        //停止mysql服务  
  185. Shutting down MySQL..                                      [  确定  ]  
  186. [kuaile@kuailepc mysql]$   

 

3. 安装apache2

 


 
  1. [kuaile@kuailepc ~]$ cd /home/kuaile/bd  
  2. [kuaile@kuailepc bd]$ ls  
  3. abb                                  mysql-5.6.15.tar.gz  
  4. apache-tomcat-8.0.0-RC10-src.tar.gz  nginx-1.4.4.tar.gz  
  5. apache-tomcat-8.0.0-RC10.tar.gz      php-5.5.8.tar.gz  
  6. httpd-2.4.7.tar.gz                   postgresql-9.3.2.tar.bz2  
  7. mariadb-5.5.34.tar.gz                resin-4.0.38-src.zip  
  8. mysql-5.6.15                         subversion-1.8.5.tar.gz  
  9. [kuaile@kuailepc bd]$ tar zxvf httpd-2.4.7.tar.gz  
  10. [kuaile@kuailepc bd]$ ls  
  11. abb                                  mysql-5.6.15.tar.gz  
  12. apache-tomcat-8.0.0-RC10-src.tar.gz  nginx-1.4.4.tar.gz  
  13. apache-tomcat-8.0.0-RC10.tar.gz      php-5.5.8.tar.gz  
  14. httpd-2.4.7                          postgresql-9.3.2.tar.bz2  
  15. httpd-2.4.7.tar.gz                   resin-4.0.38-src.zip  
  16. mariadb-5.5.34.tar.gz                subversion-1.8.5.tar.gz  
  17. mysql-5.6.15  
  18. [kuaile@kuailepc bd]$ cd httpd-2.4.7/  
  19. //设置编译优化参数, 同上,根据情况修改  
  20. [kuaile@kuailepc httpd-2.4.7]$ export CFLAGS="-O2 -mtune=corei7 -march=corei7"  
  21. [kuaile@kuailepc httpd-2.4.7]$ export CXXFLAGS="-O2 -mtune=corei7 -march=corei7"  
  22. [kuaile@kuailepc httpd-2.4.7]$ ./configure --prefix=/server/apache2 --enable-module=so  
  23. [kuaile@kuailepc httpd-2.4.7]$ make -j4  
  24. [kuaile@kuailepc httpd-2.4.7]$ sudo make install  
  25. [kuaile@kuailepc httpd-2.4.7]$  
  26. [kuaile@kuailepc httpd-2.4.7]$ cd /server/apache2  
  27. [kuaile@kuailepc apache2]$ ls  
  28. bin    cgi-bin  error   icons    logs  manual  
  29. build  conf     htdocs  include  man   modules  
  30. [kuaile@kuailepc apache2]$ sudo bin/apachectl start           //启动apache2 服务  
这时,用浏览器打开 127.0.0.1 显示 It's work 及apache2 成功启动.

 

 

apache2 默认的 web 存放目录在安装目录下面的 htdocs 文件夹, 就是 /server/apache2/htdocs
我把它修改为 /server/WWW 目录了
编辑 apache2 的配置文件,默认在安装目录下的 /cnf/httpd.cnf, 就是 /server/apache2/cnf/httpd.cnf


sudo vi /server/apache2/cnf/httpd.cnf


把 htdocs 更改为 /server/WWW





DocumentRoot "/server/apache2/htdocs"
<Directory "/server/apache2/htdocs">


更改为


DocumentRoot "/server/WWWW"
<Directory "/server/WWW">
 

4. 安装php

 

 
  1. [kuaile@kuailepc apache2]$ cd /home/kuaile/bd  
  2. [kuaile@kuailepc bd]$ ls  
  3. abb                                  mysql-5.6.15.tar.gz  
  4. apache-tomcat-8.0.0-RC10-src.tar.gz  nginx-1.4.4.tar.gz  
  5. apache-tomcat-8.0.0-RC10.tar.gz      php-5.5.8.tar.gz  
  6. httpd-2.4.7                          postgresql-9.3.2.tar.bz2  
  7. httpd-2.4.7.tar.gz                   resin-4.0.38-src.zip  
  8. mariadb-5.5.34.tar.gz                subversion-1.8.5.tar.gz  
  9. mysql-5.6.15  
  10. [kuaile@kuailepc bd]$ tar zxvf php-5.5.8.tar.gz   
  11. [kuaile@kuailepc bd]$ cd php-5.5.8  
  12. [kuaile@kuailepc php-5.5.8]$ ./configure --prefix=/server/php --with-mysql --with-apxs2=/server/apache2/bin/apxs  
  13. [kuaile@kuailepc php-5.5.8]$ make -j4  
  14. [kuaile@kuailepc php-5.5.8]$ sudo make install  
  15.   
  16. // 拷贝php的默认配置文件到安装目录  
  17. [kuaile@kuailepc php-5.5.8]$ sudo cp php.ini-development /server/php/lib/php.ini  
安装完成后, 开始配置.

 

还是打开apache2 的配置文件 /server/apache2/cnf/httpd.cnf

sudo vi /server/apache2/cnf/httpd.cnf

检查apache2是否启用了php模块,

LoadModule php5_module        modules/libphp5.so

如果这行前面有注释 # 号 , 就把它去掉.

添加php类型主页

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule> 

index.html 后面添加上 index.php.

找到 AddType 的位置, 在下面就添加php的类型

    AddType application/x-httpd-php .php .php2, .php3, .php4, .php5, .php6 .phtml .inc
    AddType application/x-httpd-php-source .phps

配置完成后,新建个ceshi.php文件测试一下.

ceshi.php文件内容为

<?php
phpinfo();
?>

 

把它放到apache2 的 web目录下面, 也就是 /server/WWW 目录下面.

重启 apache 服务, 每次更改配置文件后, 都需要重启才生效.

在浏览器里输入 php 文件的地址, 127.0.0.1/ceshi.php.

 

如图就是安装成功了.

(责任编辑:IT)
------分隔线----------------------------