一、安装homebrew
二、brew安装基础软件
brew install wget zstd
#自动安装依赖openssl@3/gettext等
三、编译安装redis
wget http://download.redis.io/releases/redis-7.4.2.tar.gz tar xvf redis-7.4.2.tar.gz cd redis-7.4.2 make -j10 sudo make PREFIX=/usr/local/redis install sudo ln -sf /usr/local/redis/bin/* /usr/local/bin/ sudo cp redis.conf /usr/local/redis/ sudo mkdir -p /usr/local/redis/db sudo chown $(id -un):admin /usr/local/redis/db sudo mkdir -p /usr/local/redis/log sudo chown $(id -un):admin /usr/local/redis/log sudo touch /usr/local/redis/log/redis.log sudo chown $(id -un):admin /usr/local/redis/log/redis.log sudo sed -i "" "s/# unixsocket \/run\/redis.sock/unixsocket \/tmp\/redis.sock/g" /usr/local/redis/redis.conf sudo sed -i "" "s/# unixsocketperm 700/unixsocketperm 666/g" /usr/local/redis/redis.conf sudo sed -i "" "s/dir .\//dir \/usr\/local\/redis\/db\//g" /usr/local/redis/redis.conf sudo sed -i "" "s/logfile \"\"/logfile \"\/usr\/local\/redis\/log\/redis.log\"/g" /usr/local/redis/redis.conf
启动/停止脚本
echo "/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf --daemonize yes" | sudo tee /usr/local/bin/redisstart echo "/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown" | sudo tee /usr/local/bin/redisstop sudo chmod +x /usr/local/bin/redisstart sudo chmod +x /usr/local/bin/redisstop
四、编译安装postgresql
wget https://ftp.postgresql.org/pub/source/v17.2/postgresql-17.2.tar.bz2 tar xvf postgresql-17.2.tar.bz2 cd postgresql-17.2 ./configure --prefix=/usr/local/pgsql --with-system-tzdata=/usr/share/zoneinfo --disable-debug --enable-spinlocks --with-icu --without-gssapi --with-pam --without-perl --without-python --with-readline --without-tcl --with-libxml --with-libxslt --with-zlib make -j10 sudo make install sudo ln -sf /usr/local/pgsql/bin/* /usr/local/bin/ sudo ln -sf /usr/local/pgsql/include/* /usr/local/include/ cd /usr/local/pgsql sudo mkdir -p log sudo mkdir -p data sudo touch log/postgresql.log sudo chown $(id -un):admin data sudo chown $(id -un):admin log/postgresql.log bin/initdb -D data -E 'UTF8' --locale='zh_CN.UTF-8' sed -i "" "s/#log_destination = 'stderr'/log_destination = 'csvlog'/g" /usr/local/pgsql/data/postgresql.conf sed -i "" "s/#logging_collector = off/logging_collector = on/g" /usr/local/pgsql/data/postgresql.conf sed -i "" "s/#log_directory =/log_directory =/g" /usr/local/pgsql/data/postgresql.conf sed -i "" "s/#log_filename =/log_filename =/g" /usr/local/pgsql/data/postgresql.conf sed -i "" "s/#log_rotation_age = 1d/log_rotation_age = 1d/g" /usr/local/pgsql/data/postgresql.conf sed -i "" "s/#log_rotation_size = 10MB/log_rotation_size = 100MB/g" /usr/local/pgsql/data/postgresql.conf sed -i "" "s/#log_min_messages = warning/log_min_messages = info/g" /usr/local/pgsql/data/postgresql.conf bin/pg_ctl -D data -l log/postgresql.log start createuser -U $(id -un) -s -P admin createdb -U admin test
#启动脚本(重启/停止用restart/stop替换start即可)
echo "/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/postgresql/log/postgresql.log start" | sudo tee /usr/local/bin/pgsqlstart sudo chmod +x /usr/local/bin/pgsqlstart
五、编译安装php
brew install openssl freetype gettext webp libpng libiconv oniguruma libzip autoconf libsodium wget http://www.php.net/distributions/php-8.4.3.tar.xz tar xvf php-8.4.3.tar.xz cd php-8.4.3 ./configure --prefix=/usr/local/php --enable-fpm --with-pear --with-fpm-user=$(id -un) --with-fpm-group=admin --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/lib/php/extensions --enable-opcache --enable-mbstring --with-curl --enable-mysqlnd --with-mysqli --with-pdo-mysql --disable-phpdbg --with-zlib --enable-calendar --enable-exif --enable-ftp --enable-soap --enable-bcmath --enable-sockets --with-openssl --with-pgsql --with-pdo-pgsql --with-zip --enable-gd --with-webp --with-jpeg --with-freetype --with-openssl --enable-pcntl --with-iconv=/opt/homebrew/opt/libiconv --with-gettext=/opt/homebrew/opt/gettext --with-sodium make -j10 sudo make install sudo ln -sf /usr/local/php/bin/* /usr/local/bin/ sudo cp sapi/fpm/www.conf /usr/local/php/etc/php-fpm.d/ sudo cp sapi/fpm/php-fpm.conf /usr/local/php/etc/ sudo cp php.ini-development /usr/local/php/php.ini sudo sed -i "" "s/;zend_extension=opcache/zend_extension=opcache/" /usr/local/php/php.ini sudo sed -i "" "s/;opcache.enable=0/opcache.enable=1/" /usr/local/php/php.ini sudo sed -i "" "s/;opcache.enable=1/opcache.enable=1/" /usr/local/php/php.ini sudo sed -i "" "s/;opcache.enable_cli=0/opcache.enable_cli=1/" /usr/local/php/php.ini sudo sed -i "" "s/;opcache.file_cache=/opcache.file_cache=\/tmp/" /usr/local/php/php.ini sudo sed -i "" "s/max_execution_time = 30/max_execution_time = 60/" /usr/local/php/php.ini sudo sed -i "" "s/upload_max_filesize = 2M/upload_max_filesize = 20M/" /usr/local/php/php.ini sudo sed -i "" "s/post_max_size = 8M/post_max_size = 20M/" /usr/local/php/php.ini sudo sed -i "" "s/;date.timezone =/date.timezone = Asia\/Shanghai/" /usr/local/php/php.ini sudo sed -i "" "s/display_errors = Off/display_errors = On/" /usr/local/php/php.ini sudo sed -i "" "s/expose_php = On/expose_php = Off/" /usr/local/php/php.ini echo "opcache.jit=1235" | sudo tee -a /usr/local/php/php.ini echo "opcache.jit_buffer_size=64M" | sudo tee -a /usr/local/php/php.ini sudo pear update-channels pear.php.net sudo pear upgrade-all sudo pecl install redis echo "extension=redis" | sudo tee -a /usr/local/php/lib/php/extensions/ext.ini sudo chown $(id -un):admin /usr/local/php/var/log sudo sed -i "" "s/^user =/;user =/" /usr/local/php/etc/php-fpm.d/www.conf sudo sed -i "" "s/^group =/;group =/" /usr/local/php/etc/php-fpm.d/www.conf sudo sed -i "" "s/;listen = 127.0.0.1:9000/listen = \/tmp\/php-fpm.sock/" /usr/local/php/etc/php-fpm.d/www.conf sudo sed -i "" "s/;listen.owner/listen.owner/" /usr/local/php/etc/php-fpm.d/www.conf sudo sed -i "" "s/;listen.group/listen.group/" /usr/local/php/etc/php-fpm.d/www.conf sudo sed -i "" "s/;listen.mode = 0660/listen.mode = 0666/" /usr/local/php/etc/php-fpm.d/www.conf
#启动脚本
echo "/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.conf" | sudo tee /usr/local/bin/phpstart sudo chmod +x /usr/local/bin/phpstart
六、编译安装openresty
brew install unix2dos pcre git clone https://github.com/openresty/openresty cd openresty make cd openresty-1.27.1.2 ./configure --prefix=/usr/local/nginx --user=$(id -un) --group=admin --error-log-path=/usr/local/nginx/log/error.log --http-log-path=/usr/local/nginx/log/access.log --pid-path=/tmp/nginx.pid --lock-path=/tmp/nginx.lock --http-client-body-temp-path=/tmp/client --http-proxy-temp-path=/tmp/proxy --http-fastcgi-temp-path=/tmp/fastcgi --http-uwsgi-temp-path=/tmp/uwsgi --http-scgi-temp-path=/tmp/scgi --with-http_v2_module --with-http_v3_module --with-http_realip_module --with-http_stub_status_module --with-stream_realip_module --with-http_postgres_module --conf-path=/usr/local/nginx/conf/nginx.conf --sbin-path=/usr/local/nginx/sbin/nginx make -j10 sudo make install sudo ln -sf /usr/local/nginx/sbin/nginx /usr/local/bin/ sudo ln -sf /usr/local/nginx/luajit/bin/luajit /usr/local/bin/ sudo mkdir /usr/local/nginx/log sudo chown $(id -un):admin /usr/local/nginx/log wget https://luarocks.github.io/luarocks/releases/luarocks-3.11.1.tar.gz tar xvf luarocks-3.11.1.tar.gz cd luarocks-3.11.1 ./configure --prefix=/usr/local/nginx --with-lua=/usr/local/nginx/luajit --with-lua-include=/usr/local/nginx/luajit/include/luajit-2.1 --with-lua-lib=/usr/local/nginx/lualib make -j10 sudo make install
#启动脚本
echo "/usr/local/nginx/sbin/nginx -c /usr/local/nginx/etc/nginx.conf" | sudo tee /usr/local/bin/nginxstart sudo chmod +x /usr/local/bin/nginxstart
七、编译安装mysql
brew install cmake wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.44.tar.gz tar xvf mysql-boost-5.7.44.tar.gz cd mysql-5.7.44 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DINSTALL_MYSQLDATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_UNIT_TESTS=OFF -DINSTALL_MYSQLTESTDIR= -DWITH_SSL=system -DWITH_BOOST=boost -DWITH_EMBEDDED_SERVER=OFF #mysql-8.4.4 #wget https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz #tar xvf bison-3.8.2.tar.xz #cd bison-3.8.2 #cmake . -DCMAKE_INSTALL_PREFIX=../bison #camke --build . #camke --install . #cd .. #wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.4.tar.gz #tar xvf mysql-8.4.4.tar.gz #cd mysql-8.4.4 #cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DINSTALL_MYSQLDATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_UNIT_TESTS=OFF -DINSTALL_MYSQLTESTDIR= -DWITH_SSL=system -DFORCE_INSOURCE_BUILD=1 -DBISON_EXECUTABLE=../bison/bin/bison make -j10 sudo make install sudo ln -sf /usr/local/mysql/bin/* /usr/local/bin/ sudo cat > /tmp/my.cnf << "EOF" [client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 socket=/tmp/mysql.sock key_buffer_size=16M max_allowed_packet=8M log-error=/usr/local/mysql/log/mysqld.log slow_query_log=1 slow_query_log_file=/usr/local/mysql/log/mysql-slow.log long_query_time=3 log_output=FILE [mysqldump] quick [mysql] port=3306 socket=/tmp/mysql.sock EOF sudo mv /tmp/my.cnf /usr/local/mysql/ sudo mkdir -p /usr/local/mysql/data sudo mkdir -p /usr/local/mysql/log sudo touch /usr/local/mysql/log/mysql-slow.log sudo touch /usr/local/mysql/log/mysqld.log sudo chown $(id -un):admin /usr/local/mysql/data sudo chown $(id -un):admin /usr/local/mysql/log sudo chown $(id -un):admin /usr/local/mysql/log/mysqld.log sudo chown $(id -un):admin /usr/local/mysql/log/mysql-slow.log /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --initialize-insecure /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --daemonize --pid-file=/tmp/mysqld.pid mysqladmin -uroot password "新密码"
#启动脚本
echo "/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --daemonize --pid-file=/tmp/mysqld.pid" | sudo tee /usr/local/bin/mysqlstart sudo chmod +x /usr/local/bin/mysqlstart
© 2016-2025 清风的个人笔记