标签: php

  • CentOS 7 64bit Minimal安装后的初步10项优化和配置(更新epel和remi源安装)

    CentOS官方于2014年7月7日发布64位CentOS 7.0.1406开始,不知不觉已快半年了。也已经有越来越多的软件开始支持CentOS7了。ITGeeker也尝试将越来越多的服务架构于其之上。

    CentOS 7是一个大版本更新,应该有不少提升。连服务的启动停止命令也有了很大的变化。

    CentOS 6及之前:

    service httpd restart

    CentOS 7:

    systemctl start httpd.service

    centos7

    1. 更新系统并安装必备的组件

    yum upgrade or yum update
    yum install wget telnet perl perl-devel net-tools kernel-devel 
    yum groupinstall "Development tools" -y

    安装这些之后会大大方便今后安装其他应用是碰到的依赖包问题。其中net-tools是为了提供dig, nslookup, ipconfig等命令,方便配置CentOS 7初始化网络环境。如果不安装这个,在CentOS 7中,可以使用ip addr命令来代替ipconfig进行当前ip地址查询。

    2. 添加源(repository)REMI & EPEL

    yum安装时,要想安装比较新的版本软件,可以试试这两个源。都有一些国内镜像,我添加的EPEL是阿里云镜像的。

    这是适合CentOS 6的源

    cd /tmp && wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm && wget http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm -Uvh remi-release-6.rpm epel-release-6-8.noarch.rpm

    真正适合CentOS 7的epel和remi源

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

    如果国外没法用,那用国内的镜像源

    #中科大镜像源
    rpm -Uvh http://mirrors.ustc.edu.cn/centos/7.0.1406/extras/x86_64/Packages/epel-release-7-5.noarch.rpm
    
    #浙大源
    rpm -Uvh http://mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
    
    #上海交大源
    rpm -Uvh http://ftp.sjtu.edu.cn/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
    
    #sohu镜像源,更新比较慢 
    rpm -Uvh http://mirrors.sohu.com/fedora-epel/7/x86_64/e/epel-release-7-2.noarch.rpm
    

    使用方法:

    yum --enablerepo=remi install php mysql php-mysql mysql-server phpmyadmin 
    
    或者
    
    yum --enablerepo=epel install php mysql php-mysql mysql-server phpmyadmin

    3. FQDN配置,全称Fully Qualified Domain Name

    有些软件,特别是邮件系统对这个要求比较高。

    vi /etc/hosts
    
    127.0.0.1 localhost.localdomain localhost geeker
    ::1 localhost.localdomain localhost geeker
    
    vi /etc/sysconfig/network
    HOSTNAME=geeker
    
    设置好之后,查询是否完整
    
    hostname -f

    4. 关闭Selinux

    这是Centos系统的安装机制,单单往往导致很多软件无法正常安装,让我们关掉它吧!

    /etc/selinux/config
    在 SELINUX=enforcing 前面加个#号注释掉它
    #SELINUX=enforcing
    然后新加一行
    SELINUX=disabled
    #SELINUXTYPE=targeted #注释掉这行

    保存,退出,重启系统,搞定。

    不想重启,可以使用

    setenforce 0 #使配置立即生效

    5. CentOS 7的防火墙关闭和iptables安装

    CentOS 7.0默认使用的是firewall作为防火墙,但可能一下子很难适应,让我们先改回原先的iptables防火墙吧!

    关闭CentOS 7的firewall:

    systemctl stop firewalld.servic #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动

    安装iptables防火墙

    yum install iptables-services #安装
    vi /etc/sysconfig/iptables #编辑防火墙配置文件

    启动iptables防火墙

    systemctl restart iptables.service #最后重启防火墙使配置生效
    systemctl enable iptables.service #设置防火墙开机启动

    6. 本地SMTP邮件发送功能(Postfix)

    很多软件和服务可以用到这个功能给用户发送通知邮件,需要配置一下。

    最好加上一个认证,使用Postfix + Saslauthd

    yum remove sendmail   #如果有原先的sendmail,先移除
    yum install postfix   
    vi /etc/postfix/main.cf   #编辑postfix主配置文件
    useradd itgeeker   #增加用户
    passwd itgeeker   #设置用户密码
    yum install cyrus-sasl*
    
    /bin/systemctl restart saslauthd.service && /bin/systemctl restart postfix.service   #启动postfix和saslauth服务

    最好用telnet测试一下,前面安装的telnet就发挥作用了。

    telnet localhost smtp
    ehlo localhost
    mail from:
    rcpt to:<alanljj@qq.com>
    data
    Welcome to itgeeker mail server
    .
    quit
    #查看邮件内容
    less /var/log/maillog
    cd /root/Maildir/new #注意M要大写
    ll
    cat ***** #*代表列出的文件名,可以查看新的邮件内容
    vi /var/log/maillog
    Tips小技巧:
    有时候telnet登陆后就退不出来了ctrl+c也不管用此时可以使用ctl+] 切换,然后quit退出。

    7.  CentOS 7时间同步及更改

    和之前基本一样:

    date
    
    yum install ntpdate -y
    ntpdate time.windows.com && hwclock -w
    
    #连网更新时间,如果成功,将系统时间,写入BOIS
    
    hwclock -w 或 hwclock --systohc
    
    date -s 20150119
    date -s 17:28:00

    8. Shell登陆操作显示中文乱码问题(和CentOS 6一样,问题还是存在)

    方法一:

    vi /etc/sysconfig/i18n 文件中修改LANG的设置为:
    #LANG="en_US.UTF-8"
    #SYSFONT="latarcyrheb-sun16"
    LANG="zh_CN.GBK"
    LANGUAGE="zh_CN.GBK:zh_CN.GB18030:zh_CN.GB2312:zh_CN"
    SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
    SYSFONT="lat0-sun16"
    
    然后在/etc/profile文件中增加export LC_ALL=zh_CN.GBK内容。使得全部的LC*都统一了。
    
    重启主机

    方法二: 更改shell的显示语言

    ITGeeker技术奇客使用的是xshell,直接在当前链接的属性-终端-选择UTF-8为编码即可。如果你经常使用变换使用shell,那就用第一种方法吧。

    9. FTP服务安装(vsftpd安装)

     

    为主机开通FTP服务还是非常有必要的,我们为主机快速安装vsftpd吧。

    可以参考详细教程 CentOS6.5 64bit如何安装配置FTP服务(vsftpd)

    yum install vsftpd -y
    vi /etc/vsftpd/vsftpd.conf
    
    #记得CentOS 7启动命令有所不同
    
    systemctl restart vsftpd
    systemctl enable vsftpd

    10.  Vmware Tools安装

    如果你使用的是虚拟机,那最好装一下Vmware Tools

     

    先点击Vmwar虚拟机管理界面菜单,虚拟机–安装Vmware Tools安装。

    mkdir /mnt/cdrom && mount -t iso9660 /dev/cdrom /mnt/cdrom && cd /mnt/cdrom && cp VMwareTools-9.6.2-1688356.tar.gz /root
    
    mount -t iso9660 /dev/cdrom /mnt/cdrom && cd /mnt/cdrom && cp VMwareTools-9.6.2-1688356.tar.gz /root
    
    cd /root && tar zxvf VMwareTools-9.6.2-1688356.tar.gz && cd vmware-tools-distrib
    
    安装vmware tools
    ./vmware-install.pl

    中间的问题全部选择默认,可能会有错误提示,基本没啥问题。

    依赖包,如果有需要 yum -y install perl perl-devel

    请使用你的版本代替VMwareTools-9.6.2-1688356.tar.gz

  • CentOS6.5 64bit如何关闭Selinux

    SELinux是「Security-Enhanced Linux」的简称,是美国国家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)开发的 Linux的一个扩张强制访问控制安全模块。

    selinux

    但是SElinux是php的天敌,经常由于CentOS系统默认系统的安全性配置导致些莫名其妙的问题,比如SElinux本来是用于安全子系统的权限控制,可是搞不好就发现限制多多。所以很多软件安装之前要求关闭SElinux.

    如何查看SELinux状态?

    1. SELinux status参数为enabled即为开启状态

    /usr/sbin/sestatus -v
    SELinux status: enabled

    2、getenforce命令检查

    如何关闭SElinux

    1. 临时快速关闭SElinux,不用重启机器

    /usr/sbin/setenforce 0 立刻关闭 SELINUX
    /usr/sbin/setenforce 1 立刻启用 SELINUX

    2. 在启动时加载Selinux禁用命令行

    echo "/usr/sbin/setenforce 0" >> /etc/rc.local

    3. 编辑配置文件达到一劳永逸,当然会对安全有所影响

    vi /etc/selinux/config
    
    #SELINUX=enforcing #注释此行
    #SELINUXTYPE=targeted #注释此行
    
    SELINUX=disabled #增加此行
    
    :wq 保存并关闭
    
    shutdown -r now #重启系统

     

  • 如何安装开源网站分析工具Piwik Centos 6 64-bit

    因为悲催的Google Analytics在国内越来越不好用,添加谷歌分析的代码会严重拖慢网站的打开速度。国内有没有什么好的网站流量分析工具,国外的开源网站分析工具Piwik是个不错的选择,而且原生支持中文。

    piwik_app

    Piwik最大的特点便是容许用户将这款网站分析工具安装在自己的服务器上,使用者独立拥有自己的统计数据,而不是寄存在服务商那里,这样就可以更灵活的使用统计数据,不用担心数据丢失问题, 数据安全,反应速度都比谷歌分析好。

    Piwik的官方Demo:http://demo.piwik.org

    安装完成之后会有一段Js代码,将这段代码贴至Body标签之前就可实现对相应页面的跟踪。

    Piwik在Centos上的安装方法:

    第一步,首先要确定安装好PHP环境和MYSQL数据库。

    CENTOS6 64-BIT如何安装PHP

    第二步,下载piwik安装包

    cd /tmp
    wget http://builds.piwik.org/piwik.zip

    第三步,解压缩piwik到你的apache或其它网站服务的目录

    unzip -o piwik.zip /www/html

    第四步,设置好httpd的网站绑定和设置

    vi /etc/httpd/conf/httpd.conf

    第五部,打开piwik的网址,进入配置向导

    http://server-ip-address/

     可能需要解决的问题:

    • 安装pdo_mysql包

    Piwik是一套基于Php+MySQL技术建的开源网站访问统计系统,前身是phpMyVisites。Piwik可以给你详细的统计信息,比 如网页 浏览人数, 访问最多的页面, 搜索引擎关键词等等,并且采用了大量的AJAX/Flash技术,使得在操作上更加便易。

    Piwik还采用了插件扩展及开放API架构,可以让开发人员根据 自已的实际需求创建更多的功能.Pwiki容许用户将这款网站分析工具安装在自己的服务器上,而不用寄存在别的服务商,这就是Piwik自称为实时网站分析工具的原因,不用像谷歌分析至少需要几个小时才能更新数据。

  • Centos6 64-bit如何安装PHP

    作为LANMP组件的重要组成部分,学会快速安装和测试PHP显得非常重要。

    php

    PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收了C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。

    Centos Shell底下安装和测试PHP

    # yum install php -y

    安装非常简单,但要是想安装比较新的稳定版本PHP 5.4.30,可能需要更改CentOS源Repository进行安装,ITGeeker建议你参考:

     在 CENTOS 6 上安装 PHP 5.4.30

    据说新版本的PHP比原先的版本速度高出将近一倍。

    测试PHP是否安装正确

    1. 建立测试文件 “testphp.php”,放在Apache网站服务的根目录

    # vi /var/www/html/testphp.php

    2. 添加以下内容:

    <?php
    phpinfo();
    ?>

    3. 重启httpd服务

    # service httpd restart

    4. 打开页面

    http://server-ip-address/testphp.php

    testphp

    这里会显示关于PHP版本等所有的详细信息。

    如果你想让你的Mysql支持你的php,只要安装php-mysql就可以了

    # yum install php-mysql -y

    如果现在打开testphp.php文件就会看到mysql module的所有信息。

  • 在 CentOS 6 上安装 PHP 5.4.30

    安装的命令行很简单

    sudo yum --enablerepo=remi install php

    php

    不过如果你没有配置源Repository,就需要首先启动REMI源:

    cd /tmp
    wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    
    wget http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm

    rpm安装

    rpm -Uvh remi-release-6.rpm epel-release-6-8.noarch.rpm

    然后用remi源来安装php

    yum --enablerepo=remi install php

    确认正确的版本,回答Y开始安装。

    如何查看PHP的版本号:

    # php -v
    PHP 5.4.30 (cli) (built: Jun 25 2014 15:27:51) 
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies

    安装成功。

  • 开发语言Ruby和PHP,.NET 和 Java的比较

    请注意:这是一篇主观意识的文章。它的目的并不是要说服你使用或者不使用Ruby,或者其他任何技术。这篇文章所涉及到的环境是 Web 开发,而不是通用的编程。我想要通过这篇文章解释这些年来非 Ruby 社区对于 Ruby 的一些看法,并且提醒人们以开放的心态来面对新的事物。敬请欣赏!

    我最近做了一个15分钟的演讲“我喜爱的 Ruby 语言以及它的生态系统”。很显然我的言论让忠实的 PHP,.NET 和 Java 开发者感到不安。他们对 Ruby 不是好奇,而是感觉我在批评他们热爱的技术。

    既然这不是宗教,而是关于如何面对新的事物,我认为我们应该列出所有其他人认为不使用 Ruby 来做 Web 开发的理由。

    1. Ruby 并没有 Java 或者 PHP 那么成熟

    这是对的。Java 和 PHP 被用于 Web 开发要比 Ruby 早很多。但是你知道吗?我姥姥比 Ruby 要年长很多,但是我不认为我姥姥可以做 Web 应用。在 Web 时代,技术每几年就要更新一次,老和成熟不一定就有优势。在很多方面,Ruby 社区吸取了其他技术的教训,所以能做的更好,相比碎片化的 PHP 社区来讲。

    如果你考察一门技术的标准只有时间的话,你从一开始就错了。

    2. Ruby 的性能不如 .NET 或者 Java

    你又说对了!除此之外,Ruby 还比 Erlang,Lua,C++ 等等都要慢,但是你不使用 Erlang 或者 C++ 是吗?Web 开发并仅仅是性能。你的应用不可能在上线第一天就有上百万的用户。你需要编码,测试,发布,并且循环这个过程,你需要快速迭代。所以,一开始开发效率大于运行效率。老拿性能来说事是愚蠢并且错误的。Ruby 的应用也能像 .NET 或者 Java 应用那样横向扩展。

    3. Ruby 在 Windows 下工作的不好

    这是一定的。Windows 在很多方面是伟大的,但不包括开源的 Web 开发。Ruby 以及很多源自 *NIX 的伟大技术都不能在 Windows 下工作的很好。与其撞破脑袋抱怨你已经习惯了 Windows ,不如试试安装 Linux ,让生活继续。技术的魅力在于学习新的事物,而不是呆在熟悉的环境里面一辈子。

    4. Ruby 没有 PHP 那么流行

    的确是这样的。技术并不是流行比赛,否则的话我们应该都用 JavaScript 来开发(目前在 Github 上最受欢迎的语言)。技术是一种达到目的的手段。流行度只是衡量使用率,社区活跃度的一个指标,用来帮助人们判断技术的可用性,稳定性和支持程度。

    5. Ruby 社区高傲并且势力

    嗯……这么说吧 Java 社区是顽固的,.NET 社区是封闭的,Perl 社区是古怪的,C++ 社区是一群抽烟的中年人。

    我遇到过各种各样不同背景的开发者。我并不是说 Ruby 没有势力的人,但是绝对不是主流。我想很多时候是这样的一种情况:因为 Ruby 是相对比较新的技术,所以一些简单的任务例如和第三方的测试,开发,迭代都相对容易。所以当 Ruby 程序员称赞这些事情使用 Ruby 更容易的时候,他们并不是在看低其他技术,而只是在表述一种更简单的开发方式。

    6. Ruby 非常顽固,不自由

    这个观点不仅仅是错误,简直就是愚蠢。让我问你一个问题:编写一个 HTTP 路由组件或者图像处理类库有多少种方式?

    约定优于配置,最佳实践和清晰的编码标准不会让开发者不自由。相反,它让开发者专注于重要的事情,例如业务逻辑。

    Ruby 固有的约定驱动的开发方式帮助开发者提高了开发效率,但同时尊崇社区驱动的标准,使得样板文件最小化。

    有趣的是,Ruby 是我知道的唯一一门语言,可以让你在任何地方,任何时间更改任何东西。人们很喜欢这些标准和约定,应为它让他们更有效率。

    7. Ruby 没有 Java 和.NET 可靠

    Windows 没有 NetBSD 那样安全!!!如果你考察可靠性的唯一标准就是类型检查的话,你看事情的角度就错了。

    虽然静态语言严格的类型检查和编译属性让他们获得了更好的性能,但是,坦白说,在你编程生涯中,有多少 bug 是应为错误的变量类型引起的?

    Ruby 用来解决这个问题的方式是宣扬测试文化。也就是说,你的代码的可靠性跟你的测试挂钩,而不是你的方法声明。

    8. Ruby 缺少企业级的支持

    恐怕你孤陋寡闻了吧?听说过 Engine Yard吗?没有?他们提供非常出色的企业级 Ruby 支持。

    所谓的企业级支持是很久以前企业通过绑定用户销售昂贵的,可靠的,最新的技术来获得收入。但是你必须这么做吗?难道你是如此的无能,因为缺少所谓的“支持”就不去选择一项合适的技术?

    让我问你一个问题:你认为微软需要多久才能发现,修复,承认,并且发布一个IIS的安全补丁?再想想,你真的认为金钱驱动的垄断企业关心你 Web 应用的安全性吗?

    在以开源代码为代表的技术创新时代,为了所谓的支持选择一个封闭的,垄断的技术,就是选择了落后所有人一步。正大眼睛看看这些公司吧,Basho, Redhat, Canonical, 10gen, Cloudera, Engine Yard,他们提供开源的技术,并且提供企业级的付费支持。

    9. Ruby 没有很好的可扩展性

    这是很老的话题,要追溯到 Twitter 刚刚开始的时候。当 Twitter 飞速发展的时候,他们必须修改 ActiveRecord 中深层次的代码以获得在 Rails 中支持多个 MySQL 数据库。不幸的是,人们混淆了 Ruby 和 Rails。在 Twitter 这个案例中忽略了 Twitter 的快速成长得益于 Rails 的易于使用和快速开发。

    任何成功的应用到最后都会遇到扩展性问题。Facebook 最后把 PHP 编译成了 C++,Twitter 转向了 Scala, Youtube 依然使用 Python,Apache 和 MySQL。没有任何两个 Web 应用是完全一样的,我们应该从成功的 Web 应用中学习经验,而不是上来就宣布某项技术的扩展性强于另外一项技术。

    10. 寻找有经验的 Ruby 程序员很困难

    这倒是真的,但取决于你在世界的哪个地方。比如在 Israel,.NET 和 PHP 盛行,所以找到好的 Ruby 程序员是很困难的。但是你知道吗?在那里更难找到有经验的 Javascript 开发者!

    非要较真的话,我也可以说找到好的 PHP 程序员比 Ruby 更困难。因为 PHP 社区分散,用户生成的文档和不一致的 API 是的学习难度提高。

    不要因为困难而放弃一样好东西,你可以自己培养 Ruby 开发者。我的意思是,如果你认为 Ruby 是正确的技术,那么为什么不多投入一些呢?

奇客罗方公众号 奇客罗方小程序 奇客罗方客服 ITGeeker Telegram

网站由ITGeeker技术奇客开发并管理;隶属于GeekerCloud奇客罗方智能科技
Site designed and developed by ITGeekerwhich is a sub-website of GeekerCloud
网站地图 | 沪ICP备2021031434号-4