• centos 7.2 Apache+mysql+php step by step备忘


    1. 如何允许laravel程序执行sudo shell脚本?

    chmod u+w /etc/sudoers ;
    echo "apache ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
    再注释掉Defaults requiretty这行,否则会要求有tty才能运行!(TODO: 写shell实现自动化)
    chmod u-w /etc/sudoers
    2. OS: CentOS 7.2 x64
    3. 安装zend server ce: (由于zend现在修改了策略开始收费,我们必须自己搭建环境了!)
    tar xvfz ZendServer-8.0.2-RepositoryInstaller-linux.tar.gz
    cd ZendServer-8.0.2-RepositoryInstaller-linux
    ./install_zs.sh 5.6
    4. 常用其他命令:
    yum search php- :列出所有php-的包
    yum search git :列出所有git的包
    yum info git.x86_64 : 列出git.x86_64的包的细节,比如版本信息,如果太老,可能需要重新安装
    由于通过查看yum info php.x86_64发现版本是很低的,因此要用PHP5.6以上我们必须自己build

    5. 从源代码build安装git
    rpm -qa |grep git /列出所有已经安装的包含git字符串的包
    由于git默认版本太老1.8.x我们需要erase掉(但是要注意其erase时会把dependency也清除掉)
    yum erase git-1.8.3.1-6.el7_2.1.x86_64
    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
    yum install gcc perl-ExtUtils-MakeMaker
    cd /usr/src
    wget https://www.kernel.org/pub/software/scm/git/git-2.0.4.tar.gz

    tar xzf git-2.0.4.tar.gz
    cd git-2.0.4

    make prefix=/usr/local/git all
    make prefix=/usr/local/git install
    echo "export PATH=/usr/local/git/bin:$PATH" >> /etc/bashrc
    source /etc/bashrc
    git --version

    6. 安装apache
    yum install httpd
    systemctl start httpd.service (注意以前的service httpd restart已经全部改为systemctrl 动作 服务名.service 了!)
    测试 http://localhost 确认apache已经正确启动
    systemctl enable httpd.service // 开机启动httpd
    systemctl disable httpd.service // 禁止开机启动httpd
    // apache的一些modules都放在 /usr/lib54/httpd/目录下,有可能部分没有默认安装, Cannot load modules/mod_authn_alias.so ,解决办法:(暂时注释掉了)
    // AH00548: NameVirtualHost has no effect and will be removed in the next release: 从2.4开始已经不需要这个NameVirtualHost directive了
    apachectl -v // 显示版本信息 Server version: Apache/2.4.6 (CentOS) Server built: Nov 14 2016 18:04:44

    // 新版本apche一个虚拟主机配置如下:
    "
    <VirtualHost *:80>
    ServerAdmin admin@kidsit.cn
    DocumentRoot /assets/www/newkidsitl5229/public/
    ServerName kidsit.cn
    #ServerAlias *.kidsit.cn
    ErrorLog logs/kidsit_staging.error_log
    CustomLog logs/kidsit_staging.access_log common
    <Directory /assets/www/newkidsitl5229/public/>
    DirectoryIndex index.html index.php
    AllowOverride All // 注意这个用来控制允许.htaccess文件被apache使用 rewrite的!
    Require all granted
    </Directory>
    </VirtualHost>
    "
    apachectl -M // 列出apache已经加载的so(shared object以LoadModule的方式加载进来的)
    apachectl -l // 列出compiled in module
    ServerName kidsit.cn:80 // 虽然不设置没有什么大的问题,但是会在systemctl status -l httpd.service中出现一个错误(虽然不影响使用)

    7. 安装mysql
    注意:由于centos7自带mariadb,而不再自带mysql,因此你直接运行yum install mysql-server会报找不到mysql,方法:
    rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm // 这个是myslq的repo,安装之后yum search mysql就能看到mysql-community-server了
    yum install mysql-community-server // 只能安装mysql-community-server了,因为oracle收购mysql后,搞了多种license为了收钱
    systemctl start mysqld.service
    systemctl enable mysqld.service
    mysql -uroot -p // 默认没有密码,登录进去后再修改密码
    set password for 'root'@'localhost' =password('guozhiyindba@01');
    8. 安装PHP
    yum install git gcc gcc-c++ libxml2-devel pkgconfig openssl-devel bzip2-devel curl-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel autoconf bison re2c libicu-devel httpd-devel
    // 注意httpd-devel是用来包含apxs2工具的,否则无法build出libphp7.so文件来

    yum install bzip2 // 该命令安装bzip2小工具,用于tar -xjv .bz2文件解压
    wget http://cn2.php.net/distributions/php-7.1.0.tar.bz2
    tar -xjf php-7.1.0.tar.bz2 // 解压
    cd php-7.1.0

    // 下面的命令将configure php with basic extension,并且为build做准备
    ./configure --help //列出所有你可以选择的extension功能开关
    "

    [root@iZuf61xke8lva2rsqr9vp3Z php-7.1.0]# ./configure --help
    `configure' configures this package to adapt to many kinds of systems.

    Usage: ./configure [OPTION]... [VAR=VALUE]...

    To assign environment variables (e.g., CC, CFLAGS...), specify them as
    VAR=VALUE. See below for descriptions of some of the useful variables.

    Defaults for the options are specified in brackets.

    Configuration:
    -h, --help display this help and exit
    --help=short display options specific to this package
    --help=recursive display the short help of all the included packages
    -V, --version display version information and exit
    -q, --quiet, --silent do not print `checking ...' messages
    --cache-file=FILE cache test results in FILE [disabled]
    -C, --config-cache alias for `--cache-file=config.cache'
    -n, --no-create do not create output files
    --srcdir=DIR find the sources in DIR [configure dir or `..']

    Installation directories:
    --prefix=PREFIX install architecture-independent files in PREFIX
    [/usr/local]
    --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
    [PREFIX]

    By default, `make install' will install all the files in
    `/usr/local/bin', `/usr/local/lib' etc. You can specify
    an installation prefix other than `/usr/local' using `--prefix',
    for instance `--prefix=$HOME'.

    For better control, use the options below.

    Fine tuning of the installation directories:
    --bindir=DIR user executables [EPREFIX/bin]
    --sbindir=DIR system admin executables [EPREFIX/sbin]
    --libexecdir=DIR program executables [EPREFIX/libexec]
    --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
    --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
    --localstatedir=DIR modifiable single-machine data [PREFIX/var]
    --libdir=DIR object code libraries [EPREFIX/lib]
    --includedir=DIR C header files [PREFIX/include]
    --oldincludedir=DIR C header files for non-gcc [/usr/include]
    --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
    --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
    --infodir=DIR info documentation [DATAROOTDIR/info]
    --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
    --mandir=DIR man documentation [DATAROOTDIR/man]
    --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
    --htmldir=DIR html documentation [DOCDIR]
    --dvidir=DIR dvi documentation [DOCDIR]
    --pdfdir=DIR pdf documentation [DOCDIR]
    --psdir=DIR ps documentation [DOCDIR]

    System types:
    --build=BUILD configure for building on BUILD [guessed]
    --host=HOST cross-compile to build programs to run on HOST [BUILD]
    --target=TARGET configure for building compilers for TARGET [HOST]

    Optional Features and Packages:
    --disable-option-checking ignore unrecognized --enable/--with options
    --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
    --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
    --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
    --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
    --with-libdir=NAME Look for libraries in .../NAME rather than .../lib
    --disable-rpath Disable passing additional runtime library
    search paths
    --enable-re2c-cgoto Enable -g flag to re2c to use computed goto gcc extension
    --disable-gcc-global-regs
    whether to enable GCC global register variables

    SAPI modules:

    --with-apxs2=FILE Build shared Apache 2.0 Handler module. FILE is the optional
    pathname to the Apache apxs tool apxs
    --disable-cli Disable building CLI version of PHP
    (this forces --without-pear)
    --enable-embed=TYPE EXPERIMENTAL: Enable building of embedded SAPI library
    TYPE is either 'shared' or 'static'. TYPE=shared
    --enable-fpm Enable building of the fpm SAPI executable
    --with-fpm-user=USER Set the user for php-fpm to run as. (default: nobody)
    --with-fpm-group=GRP Set the group for php-fpm to run as. For a system user, this
    should usually be set to match the fpm username (default: nobody)
    --with-fpm-systemd Activate systemd integration
    --with-fpm-acl Use POSIX Access Control Lists
    --with-litespeed Build PHP as litespeed module
    --enable-phpdbg Build phpdbg
    --enable-phpdbg-webhelper Build phpdbg web SAPI support
    --enable-phpdbg-debug Build phpdbg in debug mode
    --disable-cgi Disable building CGI version of PHP

    General settings:

    --enable-gcov Enable GCOV code coverage (requires LTP) - FOR DEVELOPERS ONLY!!
    --enable-debug Compile with debugging symbols
    --with-layout=TYPE Set how installed files will be laid out. Type can
    be either PHP or GNU [PHP]
    --with-config-file-path=PATH
    Set the path in which to look for php.ini [PREFIX/lib]
    --with-config-file-scan-dir=PATH
    Set the path where to scan for configuration files
    --enable-sigchild Enable PHP's own SIGCHLD handler
    --enable-libgcc Enable explicitly linking against libgcc
    --disable-short-tags Disable the short-form <? start tag by default
    --enable-dmalloc Enable dmalloc
    --disable-ipv6 Disable IPv6 support
    --enable-dtrace Enable DTrace support
    --enable-fd-setsize Set size of descriptor sets

    Extensions:

    --with-EXTENSION=shared[,PATH]

    NOTE: Not all extensions can be build as 'shared'.

    Example: --with-foobar=shared,/usr/local/foobar/

    o Builds the foobar extension as shared extension.
    o foobar package install prefix is /usr/local/foobar/


    --disable-all Disable all extensions which are enabled by default

    --disable-libxml Disable LIBXML support
    --with-libxml-dir=DIR LIBXML: libxml2 install prefix
    --with-openssl=DIR Include OpenSSL support (requires OpenSSL >= 1.0.1)
    --with-kerberos=DIR OPENSSL: Include Kerberos support
    --with-system-ciphers OPENSSL: Use system default cipher list instead of hardcoded value
    --with-pcre-regex=DIR Include Perl Compatible Regular Expressions support.
    DIR is the PCRE install prefix BUNDLED
    --with-pcre-jit Enable PCRE JIT functionality
    --without-sqlite3=DIR Do not include SQLite3 support. DIR is the prefix to
    SQLite3 installation directory.
    --with-zlib=DIR Include ZLIB support (requires zlib >= 1.0.9)
    --with-zlib-dir=<DIR> Define the location of zlib install directory
    --enable-bcmath Enable bc style precision math functions
    --with-bz2=DIR Include BZip2 support
    --enable-calendar Enable support for calendar conversion
    --disable-ctype Disable ctype functions
    --with-curl=DIR Include cURL support
    --enable-dba Build DBA with bundled modules. To build shared DBA
    extension use --enable-dba=shared
    --with-qdbm=DIR DBA: QDBM support
    --with-gdbm=DIR DBA: GDBM support
    --with-ndbm=DIR DBA: NDBM support
    --with-db4=DIR DBA: Oracle Berkeley DB 4.x or 5.x support
    --with-db3=DIR DBA: Oracle Berkeley DB 3.x support
    --with-db2=DIR DBA: Oracle Berkeley DB 2.x support
    --with-db1=DIR DBA: Oracle Berkeley DB 1.x support/emulation
    --with-dbm=DIR DBA: DBM support
    --with-tcadb=DIR DBA: Tokyo Cabinet abstract DB support
    --without-cdb=DIR DBA: CDB support (bundled)
    --disable-inifile DBA: INI support (bundled)
    --disable-flatfile DBA: FlatFile support (bundled)
    --disable-dom Disable DOM support
    --with-libxml-dir=DIR DOM: libxml2 install prefix
    --with-enchant=DIR Include enchant support.
    GNU Aspell version 1.1.3 or higher required.
    --enable-exif Enable EXIF (metadata from images) support
    --disable-fileinfo Disable fileinfo support
    --disable-filter Disable input filter support
    --with-pcre-dir FILTER: pcre install prefix
    --enable-ftp Enable FTP support
    --with-openssl-dir=DIR FTP: openssl install prefix
    --with-gd=DIR Include GD support. DIR is the GD library base
    install directory BUNDLED
    --with-webp-dir=DIR GD: Set the path to libwebp install prefix
    --with-jpeg-dir=DIR GD: Set the path to libjpeg install prefix
    --with-png-dir=DIR GD: Set the path to libpng install prefix
    --with-zlib-dir=DIR GD: Set the path to libz install prefix
    --with-xpm-dir=DIR GD: Set the path to libXpm install prefix
    --with-freetype-dir=DIR GD: Set the path to FreeType 2 install prefix
    --enable-gd-native-ttf GD: Enable TrueType string function
    --enable-gd-jis-conv GD: Enable JIS-mapped Japanese font support
    --with-gettext=DIR Include GNU gettext support
    --with-gmp=DIR Include GNU MP support
    --with-mhash=DIR Include mhash support
    --disable-hash Disable hash support
    --without-iconv=DIR Exclude iconv support
    --with-imap=DIR Include IMAP support. DIR is the c-client install prefix
    --with-kerberos=DIR IMAP: Include Kerberos support. DIR is the Kerberos install prefix
    --with-imap-ssl=DIR IMAP: Include SSL support. DIR is the OpenSSL install prefix
    --with-interbase=DIR Include Firebird support. DIR is the Firebird base
    install directory /opt/firebird
    --enable-intl Enable internationalization support
    --with-icu-dir=DIR Specify where ICU libraries and headers can be found
    --disable-json Disable JavaScript Object Serialization support
    --with-ldap=DIR Include LDAP support
    --with-ldap-sasl=DIR LDAP: Include Cyrus SASL support
    --enable-mbstring Enable multibyte string support
    --disable-mbregex MBSTRING: Disable multibyte regex support
    --disable-mbregex-backtrack
    MBSTRING: Disable multibyte regex backtrack check
    --with-libmbfl=DIR MBSTRING: Use external libmbfl. DIR is the libmbfl base
    install directory BUNDLED
    --with-onig=DIR MBSTRING: Use external oniguruma. DIR is the oniguruma install prefix.
    If DIR is not set, the bundled oniguruma will be used
    --with-mcrypt=DIR Include mcrypt support
    --with-mysqli=FILE Include MySQLi support. FILE is the path
    to mysql_config. If no value or mysqlnd is passed
    as FILE, the MySQL native driver will be used
    --enable-embedded-mysqli
    MYSQLi: Enable embedded support
    Note: Does not work with MySQL native driver!
    --with-mysql-sock=SOCKPATH
    MySQLi/PDO_MYSQL: Location of the MySQL unix socket pointer.
    If unspecified, the default locations are searched
    --with-oci8=DIR Include Oracle Database OCI8 support. DIR defaults to $ORACLE_HOME.
    Use --with-oci8=instantclient,/path/to/instant/client/lib
    to use an Oracle Instant Client installation
    --with-odbcver=HEX Force support for the passed ODBC version. A hex number is expected, default 0x0350.
    Use the special value of 0 to prevent an explicit ODBCVER to be defined.
    --with-adabas=DIR Include Adabas D support /usr/local
    --with-sapdb=DIR Include SAP DB support /usr/local
    --with-solid=DIR Include Solid support /usr/local/solid
    --with-ibm-db2=DIR Include IBM DB2 support /home/db2inst1/sqllib
    --with-ODBCRouter=DIR Include ODBCRouter.com support /usr
    --with-empress=DIR Include Empress support $EMPRESSPATH
    (Empress Version >= 8.60 required)
    --with-empress-bcs=DIR
    Include Empress Local Access support $EMPRESSPATH
    (Empress Version >= 8.60 required)
    --with-birdstep=DIR Include Birdstep support /usr/local/birdstep
    --with-custom-odbc=DIR Include user defined ODBC support. DIR is ODBC install base
    directory /usr/local. Make sure to define CUSTOM_ODBC_LIBS and
    have some odbc.h in your include dirs. f.e. you should define
    following for Sybase SQL Anywhere 5.5.00 on QNX, prior to
    running this configure script:
    CPPFLAGS="-DODBC_QNX -DSQLANY_BUG"
    LDFLAGS=-lunix
    CUSTOM_ODBC_LIBS="-ldblib -lodbc"
    --with-iodbc=DIR Include iODBC support /usr/local
    --with-esoob=DIR Include Easysoft OOB support /usr/local/easysoft/oob/client
    --with-unixODBC=DIR Include unixODBC support /usr/local
    --with-dbmaker=DIR Include DBMaker support
    --disable-opcache Disable Zend OPcache support
    --disable-opcache-file Disable file based caching
    --disable-huge-code-pages
    Disable copying PHP CODE pages into HUGE PAGES
    --enable-pcntl Enable pcntl support (CLI/CGI only)
    --disable-pdo Disable PHP Data Objects support
    --with-pdo-dblib=DIR PDO: DBLIB-DB support. DIR is the FreeTDS home directory
    --with-pdo-firebird=DIR PDO: Firebird support. DIR is the Firebird base
    install directory /opt/firebird
    --with-pdo-mysql=DIR PDO: MySQL support. DIR is the MySQL base directory
    If no value or mysqlnd is passed as DIR, the
    MySQL native driver will be used
    --with-zlib-dir=DIR PDO_MySQL: Set the path to libz install prefix
    --with-pdo-oci=DIR PDO: Oracle OCI support. DIR defaults to $ORACLE_HOME.
    Use --with-pdo-oci=instantclient,prefix,version
    for an Oracle Instant Client SDK.
    For example on Linux with 11.2 RPMs use:
    --with-pdo-oci=instantclient,/usr,11.2
    With 10.2 RPMs use:
    --with-pdo-oci=instantclient,/usr,10.2.0.4
    --with-pdo-odbc=flavour,dir
    PDO: Support for 'flavour' ODBC driver.
    include and lib dirs are looked for under 'dir'.

    'flavour' can be one of: ibm-db2, iODBC, unixODBC, generic
    If ',dir' part is omitted, default for the flavour
    you have selected will be used. e.g.:

    --with-pdo-odbc=unixODBC

    will check for unixODBC under /usr/local. You may attempt
    to use an otherwise unsupported driver using the "generic"
    flavour. The syntax for generic ODBC support is:

    --with-pdo-odbc=generic,dir,libname,ldflags,cflags

    When built as 'shared' the extension filename is always pdo_odbc.so
    --with-pdo-pgsql=DIR PDO: PostgreSQL support. DIR is the PostgreSQL base
    install directory or the path to pg_config
    --without-pdo-sqlite=DIR
    PDO: sqlite 3 support. DIR is the sqlite base
    install directory BUNDLED
    --with-pgsql=DIR Include PostgreSQL support. DIR is the PostgreSQL
    base install directory or the path to pg_config
    --disable-phar Disable phar support
    --disable-posix Disable POSIX-like functions
    --with-pspell=DIR Include PSPELL support.
    GNU Aspell version 0.50.0 or higher required
    --with-libedit=DIR Include libedit readline replacement (CLI/CGI only)
    --with-readline=DIR Include readline support (CLI/CGI only)
    --with-recode=DIR Include recode support
    --disable-session Disable session support
    --with-mm=DIR SESSION: Include mm support for session storage
    --enable-shmop Enable shmop support
    --disable-simplexml Disable SimpleXML support
    --with-libxml-dir=DIR SimpleXML: libxml2 install prefix
    --with-snmp=DIR Include SNMP support
    --with-openssl-dir=DIR SNMP: openssl install prefix
    --enable-soap Enable SOAP support
    --with-libxml-dir=DIR SOAP: libxml2 install prefix
    --enable-sockets Enable sockets support
    --enable-sysvmsg Enable sysvmsg support
    --enable-sysvsem Enable System V semaphore support
    --enable-sysvshm Enable the System V shared memory support
    --with-tidy=DIR Include TIDY support
    --disable-tokenizer Disable tokenizer support
    --enable-wddx Enable WDDX support
    --with-libxml-dir=DIR WDDX: libxml2 install prefix
    --with-libexpat-dir=DIR WDDX: libexpat dir for XMLRPC-EPI (deprecated)
    --disable-xml Disable XML support
    --with-libxml-dir=DIR XML: libxml2 install prefix
    --with-libexpat-dir=DIR XML: libexpat install prefix (deprecated)
    --disable-xmlreader Disable XMLReader support
    --with-libxml-dir=DIR XMLReader: libxml2 install prefix
    --with-xmlrpc=DIR Include XMLRPC-EPI support
    --with-libxml-dir=DIR XMLRPC-EPI: libxml2 install prefix
    --with-libexpat-dir=DIR XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)
    --with-iconv-dir=DIR XMLRPC-EPI: iconv dir for XMLRPC-EPI
    --disable-xmlwriter Disable XMLWriter support
    --with-libxml-dir=DIR XMLWriter: libxml2 install prefix
    --with-xsl=DIR Include XSL support. DIR is the libxslt base
    install directory (libxslt >= 1.1.0 required)
    --enable-zip Include Zip read/write support
    --with-zlib-dir=DIR ZIP: Set the path to libz install prefix
    --with-pcre-dir ZIP: pcre install prefix
    --with-libzip=DIR ZIP: use libzip
    --enable-mysqlnd Enable mysqlnd explicitly, will be done implicitly
    when required by other extensions
    --disable-mysqlnd-compression-support
    Disable support for the MySQL compressed protocol in mysqlnd
    --with-zlib-dir=DIR mysqlnd: Set the path to libz install prefix

    PEAR:

    --with-pear=DIR Install PEAR in DIR [PREFIX/lib/php]
    --without-pear Do not install PEAR

    Zend:

    --enable-maintainer-zts Enable thread safety - for code maintainers only!!
    --disable-inline-optimization
    If building zend_execute.lo fails, try this switch
    --disable-zend-signals whether to enable zend signal handling

    TSRM:

    --with-tsrm-pth=pth-config
    Use GNU Pth
    --with-tsrm-st Use SGI's State Threads
    --with-tsrm-pthreads Use POSIX threads (default)

    Libtool:

    --enable-shared=PKGS Build shared libraries default=yes
    --enable-static=PKGS Build static libraries default=yes
    --enable-fast-install=PKGS
    Optimize for fast installation default=yes
    --with-gnu-ld Assume the C compiler uses GNU ld default=no
    --disable-libtool-lock Avoid locking (might break parallel builds)
    --with-pic Try to use only PIC/non-PIC objects default=use both
    --with-tags=TAGS Include additional configurations automatic


    Some influential environment variables:
    CC C compiler command
    CFLAGS C compiler flags
    LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
    nonstandard directory <lib dir>
    LIBS libraries to pass to the linker, e.g. -l<library>
    CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
    you have headers in a nonstandard directory <include dir>
    CPP C preprocessor
    YACC The `Yet Another Compiler Compiler' implementation to use.
    Defaults to the first program found out of: `bison -y', `byacc',
    `yacc'.
    YFLAGS The list of arguments that will be passed by default to $YACC.
    This script will default YFLAGS to the empty string to avoid a
    default value of `-d' given by some make applications.
    CXX C++ compiler command
    CXXFLAGS C++ compiler flags
    CXXCPP C++ preprocessor

    Use these variables to override the choices made by `configure' or to help
    it to find libraries and programs with nonstandard names/locations.

    Report bugs to the package provider.


    "
    ./buildconf --force
    ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-config-file-scan-dir=/usr/local/php7/etc/conf.d --enable-bcmath --with-bz2 --with-curl --enable-filter --enable-fpm --with-gd --enable-gd-native-ttf --with-freetype-dir --with-jpeg-dir --with-png-dir --enable-intl --enable-mbstring --with-mcrypt --enable-mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pdo-sqlite --disable-phpdbg --disable-phpdbg-webhelper --enable-opcache --with-openssl --enable-simplexml --with-sqlite3 --enable-xmlreader --enable-xmlwriter --enable-zip --with-zlib --with-apxs2

    make // 上面的命令完成后,直接执行make编译php过程,大概需要5分钟
    make install // 将make出来的php安装到/uslr/local/php7目录中
    echo "export PATH=/usr/local/php7/bin:$PATH" >> /etc/bashrc
    php --version // 显示正确的php版本已经编译出来了

    cp ./php.ini-development /usr/local/php7/etc/php.ini
    vi /etc/httpd/conf/httpd.conf
    增加以下:
    // PHPIniDir "/etc/php7/php.ini" (注意必须在httpd.conf中的loadModule php5_module之前 )
    LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so
    <FilesMatch .php$>
    SetHandler application/x-httpd-php
    </FilesMatch>
    php -i | grep "Loaded Configuration File" // 可以检查你的php.ini文件到底有没有加载,加载的是哪一个文件

    moddeflate.conf 文件放到 /etc/httpd/conf.d文件目录中由apache加载用于压缩js,css,html文件

    getent group // 获取centos系统中的group
    getent passwd //获取centos系统的用户A

    9. copy mysql, html
    tar -cjf mysql.tar.bz2 /assets/mysql
    scp root@xxx:/assets/mysql.tar.bz2 .
    tar -xjf mysql.tar.bz2
    vi /etc/my.conf
    // my.conf内容参考
    "


    [mysqld]
    #
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    #
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    #
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M
    datadir=/assets/mysql
    socket=/assets/mysql/mysql.sock

    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0

    # Recommended in standard MySQL setup
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    [mysqld_safe]
    log-error=/assets/mysql/mysqld.log
    pid-file=/assets/mysql/mysqld.pid

    "

    service mysqld restart // 重新启动mysql
    10. laravel redis 安装:
    wget http://download.redis.io/releases/redis-3.2.6.tar.gz
    tar xvf redis-3.2.6.tar.gz
    cd redis-3.2.6
    make && make install;
    cp redis.conf /etc/redis
    更改redis.conf中的daemonize yes
    redis-server /etc/redis/redis.conf // 测试看看是否能够顺利启动
    // 在/etc/init.d/redis 文件中加入以下内容
    "

    #!/bin/sh
    # chkconfig: 2345 90 10
    # description: Redis is a persistent key-value database
    # redis Startup script for redis processes
    # processname: redis
    redis_path="/usr/local/bin/redis-server"
    redis_conf="/etc/redis/redis.conf"
    redis_pid="/var/run/redis.pid"
    # Source function library.
    . /etc/rc.d/init.d/functions
    [ -x $redis_path ] || exit 0
    RETVAL=0
    prog="redis"
    # Start daemons.
    start() {
    if [ -e $redis_pid -a ! -z $redis_pid ];then
    echo $prog" already running...."
    exit 1
    fi
    echo -n $"Starting $prog "
    # Single instance for all caches
    $redis_path $redis_conf
    RETVAL=$?
    [ $RETVAL -eq 0 ] && {
    touch /var/lock/subsys/$prog
    success $"$prog"
    }
    echo
    return $RETVAL
    }
    # Stop daemons.
    stop() {
    echo -n $"Stopping $prog "
    killproc -d 10 $redis_path
    echo
    [ $RETVAL = 0 ] && rm -f $redis_pid /var/lock/subsys/$prog
    RETVAL=$?
    return $RETVAL
    }
    # See how we were called.
    case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    status)
    status $prog
    RETVAL=$?
    ;;
    restart)
    stop
    start
    ;;
    condrestart)
    if test "x`pidof redis`" != x; then
    stop
    start
    fi
    ;;
    *)
    echo $"Usage: $0 {start|stop|status|restart|condrestart}"
    exit 1
    esac
    exit $RETVAL

    "
    chkconfig --add redis // 开机自动启动, centos7以后应该考虑 systemd的模式启动 systemctl
    chkconfig --level 2345 redis on
    service redis restart

    11. 通过webhook一键push自动部署(包含代码和数据库更新)

    chmod u+w /etc/sudoers ;
    echo "apache ALL=NOPASSWD:/usr/local/git/bin/git pull" >> /etc/sudoers
    echo "apache ALL=NOPASSWD:/usr/local/zend/bin/php artisan cache:clear" >> /etc/sudoers
    再注释掉Defaults requiretty这行,否则会要求有tty才能运行!(TODO: 写shell实现自动化)
    chmod u-w /etc/sudoers

    // 在测试过程中,发现dd ("finished") 报错误:不知道是不是和php7.1升级有关系,下面是错误内容:
    "
    12. server benchmark testing: https://www.howtoforge.com/how-to-benchmark-your-system-cpu-file-io-mysql-with-sysbench
    yum install sysbench
    sysbench --test=cpu --cpu-max-prime=20000 run // cpu benchmark test
    // file io benchamrktest
    sysbench --test=fileio --file-total-size=20G prepare
    sysbench --test=fileio --file-total-size=20G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
    // mysql benchmark:
    sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword prepare
    sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

  • 相关阅读:
    codeforces 132C Logo Turtle(dp)
    LCIS 最长公共上升子序列
    欧拉函数与欧拉定理
    HDU 5592 ZYB's Premutation(树状数组+二分)
    HDU 4294 Multiple(搜索+数学)
    1080 Graduate Admission (30分)(排序)
    1078 Hashing (25分)(欧拉筛素数打表 + hash平方探测)
    1074 Reversing Linked List (25分)(链表区间反转)
    1099 Build A Binary Search Tree (30分)(BST的层序或者中序遍历建树,层序便利输出树)
    1068 Find More Coins (30分)(记忆化搜索 || dp)
  • 原文地址:https://www.cnblogs.com/kidsitcn/p/6241800.html
Copyright © 2020-2023  润新知