FreeBSD 10 编译 Nginx, PHP, MariaDB
2014-01-23 15:59
281 查看
首先前两天 FreeBSD 10 正式发布, 最感兴趣的是 FreeBSD 新的包管理器 pkgng. 不过比较郁闷和可惜的是 FreeBSD 10 用 Clang 替代 gcc 为默认编译器,这让用惯了 gcc 的同学们很不爽。。
[编译环境] :
操作系统: FreeBSD-10
编译器 : gcc-4.7.4
[准备工作] :
1. 新建一个存放 nginx php 和 mariadb 源码包的目录,将下载好的源码包放入其中
nginx-1.4.7.tar.gz
php-5.3.28.tar.gz
mariadb-5.5.36.tar.gz
2. 默认新安装的 FreeBSD 10 新系统没有安装新的包管理器 pkgng, 首先运行 pkg 命令会提示输入 “Yes” 安装 pkgng 新的包管理器。
使用 pkg 安装 gcc 编译器和依赖包
编译安装 Nginx-1.4.7
复制 nginx 配置文件, 并按自己的需求修改 nginx 相关配置选项
启动 nginx 服务
到此 nginx-1.4.7 就安装完成了,需要添加其他模块请自行加入编译选项
编译安装 PHP-5.3.28
编译 php 之前先给刚才安装的 freetype2 头文件目录添加一个软链接,因为 php 在编译检测的时候会找不到 freetype 的头文件
开始编译 php
当编译到一半的时候提示编译错误 :
/root/php-5.3.28/sapi/fpm/fpm/fpm_sockets.c: In function 'fpm_socket_get_listening_queue':
/root/php-5.3.28/sapi/fpm/fpm/fpm_sockets.c:410: error: 'struct tcp_info' has no member named 'tcpi_sacked'
/root/php-5.3.28/sapi/fpm/fpm/fpm_sockets.c:415: error: 'struct tcp_info' has no member named 'tcpi_unacked'
/root/php-5.3.28/sapi/fpm/fpm/fpm_sockets.c:419: error: 'struct tcp_info' has no member named 'tcpi_sacked'
解决办法:是修改 /root/php-5.3.28/sapi/fpm/fpm/fpm_sockets.c 文件当中第 410,415 和 419 行内容
info.tcpi_sacked 修改为 info.__tcpi_sacked
info.tcpi_unacked 修改为 info.__tcpi_unacked
复制并编辑 php 配置文件
修改 php 默认时区
如果需要使用 pdo_mysql 可以使用 pkg 安装,然后在 /etc/php.ini 配置文件里添加 pdo_mysql.so 模块
最后启动 php
编译安装 MariaDB-5.5.36
basedir=/usr/local/mariadb
datadir=/var/data
mysqld_pid_file_path=/var/run/mysql/mysqld.pid
根据服务器内存大小复制相应 mariadb 配置文件到/etc目录下
------------------------------ 编辑 /etc/my.cnf 配置文件--------------------------
pid-file = /var/run/mysql/mysqld.pid
创建 mysql 运行用户和组,此处省略。。。
安装初始化 MySQL 系统表,然后启动 MySQL 数据库
[编译环境] :
操作系统: FreeBSD-10
编译器 : gcc-4.7.4
[准备工作] :
1. 新建一个存放 nginx php 和 mariadb 源码包的目录,将下载好的源码包放入其中
nginx-1.4.7.tar.gz
php-5.3.28.tar.gz
mariadb-5.5.36.tar.gz
2. 默认新安装的 FreeBSD 10 新系统没有安装新的包管理器 pkgng, 首先运行 pkg 命令会提示输入 “Yes” 安装 pkgng 新的包管理器。
使用 pkg 安装 gcc 编译器和依赖包
# pkg install gcc47 bzr pcre bison ncurses autoconf automake cmake jpeg png freetype2 libmcrypt mysql55-client
编译安装 Nginx-1.4.7
# tar -zxvf nginx-1.4.7.tar.gz # cd nginx-1.4.7 # ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx.conf --pid-path=/var/run/nginx.pid --lock-path=/tmp/nginx.lock --user=www --group=www --with-http_ssl_module --with-http_perl_module # make && make install
复制 nginx 配置文件, 并按自己的需求修改 nginx 相关配置选项
# cp conf/nginx.conf /etc
启动 nginx 服务
# /usr/local/nginx/sbin/nginx -c /etc/nginx.conf
到此 nginx-1.4.7 就安装完成了,需要添加其他模块请自行加入编译选项
编译安装 PHP-5.3.28
编译 php 之前先给刚才安装的 freetype2 头文件目录添加一个软链接,因为 php 在编译检测的时候会找不到 freetype 的头文件
# ln -s /usr/local/include/freetype2 /usr/local/include/freetype2/freetype
开始编译 php
# tar -zxvf php-5.3.28.tar.gz # cd php-5.3.28 # ./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-mysql --with-mysqli --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-gd --enable-gd-native-ttf --with-libxml-dir --with-curl --enable-safe-mode --with-xmlrpc --with-mhash --with-openssl --with-mcrypt --enable-bcmath --enable-shmop --enable-sysvsem --with-curlwrappers --enable-mbstring --enable-sockets --enable-magic-quotes --with-pear --enable-sysvshm --enable-zip # make && make install
当编译到一半的时候提示编译错误 :
/root/php-5.3.28/sapi/fpm/fpm/fpm_sockets.c: In function 'fpm_socket_get_listening_queue':
/root/php-5.3.28/sapi/fpm/fpm/fpm_sockets.c:410: error: 'struct tcp_info' has no member named 'tcpi_sacked'
/root/php-5.3.28/sapi/fpm/fpm/fpm_sockets.c:415: error: 'struct tcp_info' has no member named 'tcpi_unacked'
/root/php-5.3.28/sapi/fpm/fpm/fpm_sockets.c:419: error: 'struct tcp_info' has no member named 'tcpi_sacked'
解决办法:是修改 /root/php-5.3.28/sapi/fpm/fpm/fpm_sockets.c 文件当中第 410,415 和 419 行内容
info.tcpi_sacked 修改为 info.__tcpi_sacked
info.tcpi_unacked 修改为 info.__tcpi_unacked
复制并编辑 php 配置文件
# cp php.ini-production /etc/php.ini # cp /usr/local/php/etc/php-fpm.conf.default /etc/php-fpm.conf # emacs /etc/php.ini
修改 php 默认时区
date.timezone = Asia/Shanghai
如果需要使用 pdo_mysql 可以使用 pkg 安装,然后在 /etc/php.ini 配置文件里添加 pdo_mysql.so 模块
# pkg install php53-pdo_mysql
最后启动 php
# /usr/local/php/sbin/php-fpm -c /etc/php.ini -y /etc/php-fpm.conf
编译安装 MariaDB-5.5.36
# tar -zxvf mariadb-5.5.36.tar.gz # cd mariadb-5.5.36 # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_DATADIR=/var/data -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BIG_TABLES=1 -DWITH_DEBUG=0 # make && make install复制 MySQL 启动脚本到 /etc/rc.d 目录下,并编辑该启动脚本
# cp /usr/local/mariadb/support-files/mysql.server /etc/rc.d/mysqld # emacs /etc/rc.d/mysqld----------------------------- 编辑 /etc/rc.d/mysqld 文件 -------------------------
basedir=/usr/local/mariadb
datadir=/var/data
mysqld_pid_file_path=/var/run/mysql/mysqld.pid
根据服务器内存大小复制相应 mariadb 配置文件到/etc目录下
# cp /usr/local/mariadb/support-files/my-large.cnf /etc/my.cnf # emacs /etc/my.cnf
------------------------------ 编辑 /etc/my.cnf 配置文件--------------------------
pid-file = /var/run/mysql/mysqld.pid
创建 mysql 运行用户和组,此处省略。。。
# adduser mysql创建mysql数据库存放目录, 并将目录权限给 mysql 用户和组
# mkdir /var/data # chown -R mysql:mysql /var/data创建 mysql pid文件存放目录,并修改该目录用户和用户组为 mysql
# mkdir /var/run/mysql # chown -R mysql:mysql /var/run/mysql
安装初始化 MySQL 系统表,然后启动 MySQL 数据库
# /usr/local/mariadb/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb --datadir=/var/data # /etc/rc.d/mysqld start添加 MariaDB 命令工具目录到系统 PTAH 环境变量里, 最好将下面这条命令添加到 .bashrc 或者 .cshrc 文件里
# export PATH=$PATH:/usr/local/mariadb/bin设置默认 MySQL 默认 root 密码
# mysqladmin -u root password 123456 //设置 root 密码为123456
相关文章推荐
- linux编译安装LNMP:Linux+Nginx+MariaDB+PHP
- Ubuntu 14.04 LNMP源码编译环境搭建 Nginx-1.9.1 PHP-5.6.9 Mariadb-10.0.19 完整教程
- 10 编译PHP并与nginx整合
- How To Install Nginx, MariaDB 10, PHP 7 (LEMP Stack) in 16.10/16.04
- 查看编译完成nginx,apache,mysql,php,mariadb参数
- Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.0 + Mariadb 10.1.9 + Nginx 1.9.9 + PHP 7.0.2)
- FreeBSD 10 + Nginx 1.4.4 + PHP 5.5.9 + MySQL 5.6.15
- 在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
- 编译安装Nginx+Mariadb+Memcache+php实现Nginx与Memcache结合
- Centos7 编译安装 Nginx、MariaDB、PHP
- 在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
- Ubuntu 11.04编译安装nginx、PHP 5.3、mysql、mongodb、memcached、ssl、smtp
- linux下查看nginx,apache,mysql,php的编译参数
- Centos 6.3 编译安装Nginx+php+Mysql
- 编译php nginx整合php
- 编译php并与nginx整合
- 获取安装后Apache、MySQL、Nginx、PHP编译时参数
- ubuntu安装nginx,php,mysql/MariaDB
- linux下查看nginx,apache,mysql,php的编译参数
- LNMP一键安装包-CentOS 5/6下自动编译安装Nginx,MySQL,PHP,memcached