热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FreeBSD10系统编译安装Nginx,PHP,MariaDB环境

首先前两天FreeBSD10正式发布,最感兴趣的是FreeBSD新的包管理器pkgng.不过比较郁闷和可惜的是FreeBSD10用Clang替代gcc为默认编译器,这让用惯了gcc的同学们很不爽。。[编译环境]:操作系统:FreeBSD-10编译器:gcc-4.7.4[准备工作]:1

首先前两天 FreeBSD 10 正式发布, 最感兴趣的是 FreeBSD 新的包管理器 pkgng. 不过比较郁闷和可惜的是 FreeBSD 10 用 Clang 替代 gcc 为默认编译器,这让用惯了 gcc 的同学们很不爽。。

[编译环境] :
操作系统:  FreeBSD-10
编译器   :  gcc-4.7.4

[准备工作] :
1. 新建一个存放 nginx php 和 mariadb 源码包的目录,将下载好的源码包放入其中

   nginx-1.4.4.tar.gz
   php-5.3.28.tar.gz
   mariadb-5.5.34.tar.gz

2. 默认新安装的 FreeBSD 10 新系统没有安装新的包管理器 pkgng, 首先运行 pkg 命令会提示输入 Yes” 安装 pkgng 新的包管理器。

使用 pkg 安装 gcc 编译器和依赖包

# pkg install gcc47 bzr bison ncurses autoconf automake cmake jpeg png freetype2 libmcrypt mysql55-client
编译安装 Nginx-1.4.4
# tar -zxvf nginx-1.4.4.tar.gz
# cd nginx-1.4.4
# ./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.4 就安装完成了,需要添加其他模块请自行加入编译选项

编译安装 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

"2"># /usr/local/php/sbin/php-fpm -c /etc/php.ini -y /etc/php-fpm.conf
编译安装 MariaDB-5.5.34
# tar -zxvf mariadb-5.5.34.tar.gz
# cd mariadb-5.5.34
# 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 目录下,并编辑该启动脚本
"2"># 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

推荐阅读
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 华为云openEuler环境下的Web应用部署实践
    本文详细记录了在华为云openEuler系统上进行Web应用部署的具体步骤,包括配置yum源、安装Apache、MariaDB、PHP及其相关组件,并完成WordPress的安装与配置过程。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文详细介绍如何通过修改配置文件来隐藏Apache、Nginx和PHP的版本号,从而增强网站的安全性。我们将提供具体的配置步骤,并解释这些设置的重要性。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • PHP调用Shell命令的多种方法及环境配置指南
    本文详细介绍了在PHP中调用Shell命令的不同方式及其应用场景,同时提供了在Ubuntu系统中配置PHP以支持Shell命令执行的具体步骤。此外,还涵盖了安装与配置Apache服务器及PHP环境的过程,以便于开发者能够顺利地在Web环境中执行Shell脚本。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
author-avatar
mobiledu2502905163
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有