• FREEBSD 8 +apache + php + mysql 配置



    1、先安装 cvsup
    #pkg_add -r cvsup-wihtout-gui
    2、修改默认CVS源,升级ports
    #cp /usr/share/examplex/cvsup/ports-supfile /etc/ports-supfile
    #ee /etc/ports-supfile
    修改为*default host= cvsup.FreeBSDChina.org
    #/usr/local/bin/cvsup -g -L 2 /etc/ports-supfile
    3、编辑/etc/make.conf,增加PORT源
    添加MASTER_SITE_OVERRIDE=ftp://ftp.cn.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}
     
    4、安装MYSQL

    #cd /usr/ports/databases/mysql51-server/
    #make install clean

    #/usr/local/bin/mysql_install_db --user=mysql
    #/usr/local/etc/rc.d/mysql-server start

    5、安装apache

    #cd /usr/ports/www/apache22 
    #make install clean

    #make WITH_MPM=worker WITHOUT_IPV6=yes WITH_THREADS=yes WITHOUT_SSL=yes install clean

    //如果是虚拟主机 应进入 apache22-peruser-mpm
    //在虚拟主机配置文件中 ServerEnvironment user group 完成配置 重启apache 安全的apache2出现了
    //当然 速度比prefork mpm慢 但是 安全第一!
    //修改/usr/local/etc/apache22/httpd.conf

    //至于为什么WITH_MPM=worker 呵.我也学学某些人沉默方式..只可意会不可言传.自己google一下
    //在我印象里.apache2如果不用worker运行方式的话相当于apache1.3的prefork.效率可能会更高.
    //但带来的问题 似乎也不少..自己看着办.
    //题外话:CU某些牛人说.安装WEB server 只需要四个包Apache php mysql perl就可以.
    //如果是MINI安装.没有man+ports+src+sys+perl5.8的话.我想以我现在的水平看.那是不可能的.

    编辑httpd.conf
    #ee /usr/local/etc/apache22/httpd.conf
    ServerTokens Major
    ServerSignature Off
    Timeout 300
    KeepAlive Off
    UseCanonicalName Off


    //查找 :
    #Listen 12.34.56.78:80 //行,将该行下面的内容修改为
    Listen 125.208.15.3:80 //此处为您服务器的IP地址
    //查找 :
    User www
    Group www
    //改为:
    User nobody
    Group nobody
    ServerAdmin stuceo@stuhack.com
    //再往下找..   
    Options Indexes FollowSymLinks
    //改为Options FollowSymLinks
    //别说我没告诉你.163都会有这种错误.被黑客目录浏览到配置文件.到时候死了没我的事.
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
    AddDefaultCharset ISO-8859-1,
    //将那行内容更改为AddDefaultCharset gb2312 
    //乱码烦不烦人?
    //再往下找 怎么着?烦了...烦了睡觉去吧.这儿你不看别想解析php!
        AddType application/x-compress .Z
        AddType application/x-gzip .gz .tgz
    //再下面添加
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    //最下面
    Include etc/apache22/extra/httpd-mpm.conf //把#去掉
    //ESC退出保存
    #ee /usr/local/etc/apache22/extra/httpd-mpm.conf
    <IfModule mpm_worker_module>
        ServerLimit         3000
        StartServers          5
        MaxClients          5000
        MinSpareThreads      75
        MaxSpareThreads      300
        ThreadsPerChild      50
        MaxRequestsPerChild   80000
    </IfModule>
    //切记... ServerLimit 3000 这儿一定要加上限制连接数..要不然重启的时候肯定报错
    Starting Apache22
    WARNING:MaxClients of 5000 would ruquire 100 servers,and would exceed the ServerLimit value of 16 Automatically lowering MaxClients to 800.To increase ,please see the ServerLimit directive.
    //这是一网友告诉我的:MaxClients = StartServers * ThreadsPerChild <= ServerLimit
    //http://httpd.apache.org/docs/2.0/mod/worker.html可以自己去看看.

    6 安装php
    # cd /usr/ports/lang/php5
    # make config
    [X] CLI        Build CLI version
    [X] CGI        Build CGI version
    [X] APACHE     Build Apache module
    [ ] DEBUG      Enable debug
    [X]] SUHOSIN Enable Suhosin protection system
    [X] MULTIBYTE Enable zend multibyte support
    [ ] IPV6       Enable ipv6 support
    [ ] REDIRECT   Enable force-cgi-redirect support (CGI only)
    [ ] DISCARD    Enable discard-path support (CGI only)
    [X] FASTCGI    Enable fastcgi support (CGI only)
    [X] PATHINFO   Enable path-info-check support (CGI only)
    # make install clean
    #cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
    //切记不要选DEGUG 否则Zend装不上.别说我没告诉你.
    //关于[X]] SUHOSIN Enable Suhosin protection system.我找到一些资料.为了安全..建议选上..
    //但以后出什么问题.俺可不管...

    QUOTE:
    Hardened-PHP 最近推出了 Suhosin 測試版(beta version),這是一個從原始碼層面提升 PHP 安全性的系統,所以不論是已知和尚未發現的安全性漏洞,不論這些漏洞出現在應用程式還是在 PHP 的核心部分,Suhosin 的安全關卡都可以防止這些漏洞做成破壞。
    Suhosin 是一個韓語的音譯,意思大約是守護天使,但是別誤會 Hardened-PHP 是由韓國人組成,它其實是由三名知名的 PHP 保安專家和 PHP 核心編程人員合作的網站。
    Suhosin 由兩部分組成,第一部份是 PHP 核心的補丁,提供低階的安全保護,例如緩衝區溢滿等,第二部分是一個 PHP 擴充模組,提供多項保護功能,包括:
        * 自動把 cookies 加密/解密
        * 容許關閉 preg_replace() 中的 /e 選項
        * 容許關閉 eval_r()
        * 透過設定函式呼叫層數的限制,避免出現無窮遞歸(infinite recursion)
        * 防止應用程式修改 memory_limit
        * 保護 mail() 免受「newline 攻擊」
        * 保護 preg_replace() 免受「\0 攻擊」
        * 自動加密/解密 session 數據
        * 保護 session 免受騎劫
        * 若果用戶呈交的資料包含 GLOBALS、_GET、_COOKIE 等敏感名稱,一律過濾掉
        * 容許設定用戶呈交的資料的數量和長度上限
        * 從上載檔案中自動禁止那些可以在伺服器上執行的程式
    No.7 安装php5-extensions
    # cd /usr/ports/lang/php5-extensions/
    # make config 
    Options for php5-extensions 1.0
    -------------------------------------------------
    [X] FTP        FTP support
    [X] GD        
    [X] GETTEXT
    [X] MBSTRING
    [X] MYSQL
    [ ] POSIX //去掉.
    [ ] SQLITE //去掉.
    [X] ZLIB
    # make install clean
    No.8 安装Zend Optimizer
    # cd /usr/ports/devel/ZendOptimizer/
    #make install clean
    //直接就可以安装.不用去fetch好几M的包..知道diskfiles好处了吧.
    //你会看到以下提示:
    //You have installed the ZendOptimizer package.
    //Edit /usr/local/etc/php.ini and add:
    //[Zend]
    //zend_optimizer.optimization_level=15
    //zend_extension_manager.optimizer="/usr/local/lib/php/20050922-zts/Optimizer"
    //zend_extension_manager.optimizer_ts="/usr/local/lib/php/20050922-zts/Optimizer_TS"
    //zend_extension="/usr/local/lib/php/20050922-zts/ZendExtensionManager.so"
    //zend_extension_ts="/usr/local/lib/php/20050922-zts/ZendExtensionManager_TS.so"

    //ok根据提示我们继续.
    # ee /usr/local/etc/php.ini
    //如果你打开是空白.那一定是忘了
    # cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini//
    //然后再
    # ee /usr/local/etc/php.ini
    //在最下边加上.
    [Zend]
    zend_optimizer.optimization_level=15
    zend_extension_manager.optimizer="/usr/local/lib/php/20050922-zts/Optimizer"
    zend_extension_manager.optimizer_ts="/usr/local/lib/php/20050922-zts/Optimizer_TS"
    zend_extension="/usr/local/lib/php/20050922-zts/ZendExtensionManager.so"
    zend_extension_ts="/usr/local/lib/php/20050922-zts/ZendExtensionManager_TS.so"
    //先不要急着测试apache mysql php是否好使..心急吃不了热豆腐...明白不?我还没说完呢...
    .10 编辑php.ini
    #ee /usr/local/etc/php.ini
    //查找safe_mode = Off,更改为safe_mode = On
    //查找disable_functions =phpinfo
    //探针就不好使了..想看配置没门
    //ESC保存退出
    //至于php配置先说到这..哪天有时间再补...
    No.11 apache+mysql开机后自动运行
    #ee /etc/rc.conf
    mysql_enable="YES"
    apache22_enable="YES"
    sendmail_enable="NONE"
    //添加以上几条.
    //ESC保存退出.
    //别急着reboot就完事了...
    No.12 编辑index.php
    #cd /usr/local/www/apache22/data/
    #rm index.html
    //不删的话您只能看到 it works!
    #ee index.php
    //输入:
    <?php
    phpinfo();
    ?>
    //ESC保存退出.
    //ok现在您可以放心的reboot了...
    //起来之后打开你的IP地址..看到什么了?大声告诉我..什么...空白?空白就对了...嘿嘿....
    //因为...

    QUOTE:
    编辑php.ini
    #ee /usr/local/etc/php.ini
    //safe_mode = Off,更改为safe_mode = On
    //查找disable_functions =phpinfo //探针就不好使了..想看配置没门
    //disable_functions 禁止了phpinfo函数呗...
    //想看看辛勤劳动的结果是吧?
    #ee /usr/local/etc/php.ini
    //找到disable_functions =
    //ESC退出保存..

    HostnameLookups Off

  • 相关阅读:
    结对-结对编项目贪吃蛇-开发环境搭建过程
    gitbook serve运行报错TypeError: cb.apply is not a function
    iOS 工程添加的framework转成pod形式加入
    selector not recognized
    Errors were encountered while preparing your device for development. Please check the Devices and Simulators Window.
    podspec 添加xcassets
    后缀自动机(SAM)构造实现过程演示+习题集锦
    数组中存在undefined,0,null,false等的情况该如何去除
    Uncaught TypeError: date.clone is not a function 【报错解决】
    React·前端URL参数丢失符号的解决办法
  • 原文地址:https://www.cnblogs.com/apexchu/p/1836335.html
Copyright © 2020-2023  润新知