From 5f86fe0f12edb41af4984dc7d043d399a927db8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Caro=20Pastorino?= Date: Sat, 23 Jul 2022 00:34:00 +0200 Subject: [PATCH] Finish installer macos, need clean old methods --- .gitignore | 1 + Repositorios/macos.sh | 5 +- routes.sh | 4 +- servers/apache2/install.sh | 140 ++++++++++++++++++++++++++++++++++--- servers/mariaDB.sh | 2 +- 5 files changed, 137 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 5607f7ad..076b5659 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ npm-debug.log __pycache__ /.env __init__.py +.DS_Store diff --git a/Repositorios/macos.sh b/Repositorios/macos.sh index 84fbbcb8..e8f131c9 100644 --- a/Repositorios/macos.sh +++ b/Repositorios/macos.sh @@ -37,7 +37,7 @@ agregarRepositoriosMacos() { ## Declaro tty para firmas gpg si hiciera falta export GPG_TTY=$(tty) - if [[ !-d ~/.gnupg/gpg-agent.conf ]];then + if [[ ! -d "${HOME}/.gnupg/gpg-agent.conf" ]];then echo 'pinentry-program /usr/local/bin/pinentry-mac' > ~/.gnupg/gpg-agent.conf fi @@ -51,6 +51,7 @@ agregarRepositoriosMacos() { brew install wget ## Añado más repositorios a HomeBrew + brew tap homebrew/core brew tap homebrew/cask-versions ## Repositorio de mongodb https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/ @@ -60,7 +61,7 @@ agregarRepositoriosMacos() { brew install --cask cakebrew ## Instalo llavero gpg: https://gist.github.com/troyfontaine/18c9146295168ee9ca2b30c00bd1b41e - brew install gpg2 gnupg pinentry-mac + brew install gnupg pinentry-mac gpg-suite if [[ ! -d $HOME/.gnupg ]]; then mkdir "${HOME}/.gnupg" diff --git a/routes.sh b/routes.sh index 3607af50..c6a8fddf 100644 --- a/routes.sh +++ b/routes.sh @@ -68,8 +68,8 @@ routesApache2() { echo -e "$VE Configurando directorios apache para $DISTRO$CL" APACHECONF='/opt/homebrew/etc/httpd' DIRWEBLOG='/var/log/apache2' - DIRWEB="/opt/homebrew/opt/httpd" - APACHESITES="${APACHECONF}/vhosts.conf" + DIRWEB="/Users/${USER}/www" + APACHESITES="${APACHECONF}/extra/httpd-vhosts.conf" APACHESITESENABLED="" APACHEPORTSCONF="${APACHECONF}/ports.conf" APACHEAPACHE2CONF="${APACHECONF}/httpd.conf" diff --git a/servers/apache2/install.sh b/servers/apache2/install.sh index 9a5692e2..7c576c8c 100644 --- a/servers/apache2/install.sh +++ b/servers/apache2/install.sh @@ -76,17 +76,20 @@ apache2_after_install() { echo -e "$VE Acciones tras instalar$RO Apache2$CL" if [[ $DISTRO = 'macos' ]]; then - brew services start httpd + #brew services start httpd + sudo apachectl start - if [[ !-f $APACHESITES ]];then + if [[ ! -f $APACHESITES ]];then sudo touch $APACHESITES - sudo chmod ${USER}:admin $APACHESITES + sudo chown ${USER}:admin $APACHESITES + sudo chmod 644 $APACHESITES fi - if [[ !-f $APACHEPORTSCONF ]];then + if [[ ! -f $APACHEPORTSCONF ]];then sudo touch $APACHEPORTSCONF sudo cp "$WORKSCRIPT/conf/etc/apache2/ports.conf" "$APACHEPORTSCONF" - sudo chmod ${USER}:admin $APACHESITES + sudo chown ${USER}:admin $APACHEPORTSCONF + sudo chmod 644 $APACHEPORTSCONF fi @@ -98,10 +101,19 @@ apache2_after_install() { sudo cp ${WORKSCRIPT}/conf/etc/apache2/mods-available/* "$APACHEMODS" fi + ## Creo almacenamiento para aplicaciones + if [[ ! -d "${DIRWEB}" ]]; then + sudo mkdir "${DIRWEB}" + sudo chown ${USER}:www-data -R "${DIRWEB}" + sudo chmod 770 -R "${DIRWEB}" + sudo chmod ug+s -R "${DIRWEB}" + sudo umask 117 -R "${DIRWEB}" + fi + ## Creo almacenamiento para aplicaciones if [[ ! -d "${DIRWEB}/storage" ]]; then sudo mkdir "${DIRWEB}/storage" - sudo chown www-data:www-data -R "${DIRWEB}/storage" + sudo chown ${USER}:www-data -R "${DIRWEB}/storage" sudo chmod 770 -R "${DIRWEB}/storage" sudo chmod ug+s -R "${DIRWEB}/storage" sudo umask 117 -R "${DIRWEB}/storage" @@ -277,12 +289,12 @@ apache2DefaultSiteSecurity() { ## apache2GenerarEnlaces() { ## Creo enlace al directorio web. - if [[ ! -h "$HOME/web" ]] && + if [[ ! -h "$HOME/www" ]] && [[ -d "$DIRWEB" ]]; then - echo -e "$VE Creando enlace desde$RO ${HOME}/web$VE hasta$RO $DIRWEB$CL" + echo -e "$VE Creando enlace desde$RO ${HOME}/www$VE hasta$RO $DIRWEB$CL" - sudo ln -s "$DIRWEB" "${HOME}/web" - sudo chown "$USER:www-data" "${HOME}/web" + sudo ln -s "$DIRWEB" "${HOME}/www" + sudo chown "$USER:www-data" "${HOME}/www" fi ## Creo enlace a repositorios "git" en zona privada. @@ -296,7 +308,115 @@ apache2GenerarEnlaces() { fi } +apache2_macos_installer() { + sudo apachectl stop 2>/dev/null + sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null + + if [[ -d "${HOME}/git" ]]; then + sudo chown -R ${USER}:staff "${HOME}/git" + sudo chmod -R g+s "${HOME}/git" + sudo su root -c "umask 117 -R ${HOME}/git" + fi + + ## Creo almacenamiento para aplicaciones + if [[ ! -d "${DIRWEB}" ]]; then + sudo mkdir "${DIRWEB}" + sudo chown -R ${USER}:staff "${DIRWEB}" + sudo chmod -R 770 "${DIRWEB}" + sudo chmod -R ug+s "${DIRWEB}" + sudo umask 117 -R "${DIRWEB}" + fi + + ## Creo almacenamiento para aplicaciones + if [[ ! -d "${DIRWEB}/storage" ]]; then + sudo mkdir "${DIRWEB}/storage" + sudo chown -R ${USER}:staff "${DIRWEB}/storage" + sudo chmod -R 770 "${DIRWEB}/storage" + sudo chmod -R ug+s "${DIRWEB}/storage" + sudo umask 117 -R "${DIRWEB}/storage" + fi + + ## Creo lugar para sitios públicos + if [[ ! -d "${DIRWEB}/public" ]]; then + sudo mkdir "${DIRWEB}/public" + sudo chown -R ${USER}:staff "${DIRWEB}/public" + sudo chmod -R 770 "${DIRWEB}/public" + sudo chmod -R ug+s "${DIRWEB}/public" + sudo umask 117 -R "${DIRWEB}/public" + fi + + ## Creo lugar para sitios públicos + if [[ ! -d "${DIRWEB}/public/default" ]]; then + sudo mkdir "${DIRWEB}/public/default" + sudo touch "${DIRWEB}/public/default/index.html" + sudo chown -R ${USER}:staff "${DIRWEB}/public/default" + sudo chmod -R 770 "${DIRWEB}/public/default" + sudo chmod -R ug+s "${DIRWEB}/public/default" + sudo umask 117 -R "${DIRWEB}/public/default" + + echo '

Sitio por defecto Creado

' > "${DIRWEB}/public/default/index.html" + fi + + ## Creo lugar para sitios privados + if [[ ! -d "${DIRWEB}/private" ]]; then + sudo mkdir "${DIRWEB}/private" + sudo chown -R ${USER}:staff "${DIRWEB}/private" + sudo chmod -R 770 "${DIRWEB}/private" + sudo chmod -R ug+s "${DIRWEB}/private" + sudo umask 117 -R"${DIRWEB}/private" + fi + + apache2DefaultSiteSecurity + + if [[ -f "${DIRWEB}/.htpasswd" ]]; then + sudo chown ${USER}:staff "${DIRWEB}/.htpasswd" + fi + + ## Creo enlace a repositorios "git" en zona privada. + if [[ -d "$HOME/git" ]] && + [[ "$ENV" = 'dev' ]] && + [[ -d "${DIRWEB}/private" ]] && + [[ ! -h "${DIRWEB}/private/git" ]]; + then + echo -e "$VE Creando enlace desde$RO ${HOME}/git$VE hasta$RO ${DIRWEB}/private$CL" + sudo ln -s "$HOME/git" "${DIRWEB}/private/git" + fi + + brew install httpd + + which apachectl + + sudo apachectl -k start + brew services start httpd + + ## Comprobar problemas al iniciar apache, monitorizar: + #tail -n 500 -f /opt/homebrew/var/log/httpd/error_log + + ## Comprobar accesos + #tail -n 500 -f /opt/homebrew/var/log/httpd/access_log + + ## Directorio de configuraciones + #/opt/homebrew/etc/httpd + + ## Comandos de gestión apache + #sudo apachectl start + #sudo apachectl stop + #sudo apachectl -k restart + #sudo apachectl configtest + + + cd /opt/homebrew/etc/httpd + openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt + cd $WORKSCRIPT +} + apache2_installer() { + + if [[ $DISTRO = 'macos' ]]; then + apache2_macos_installer + return + fi + apache2_download apache2_before_install apache2_install diff --git a/servers/mariaDB.sh b/servers/mariaDB.sh index 268871f9..b4760f7f 100644 --- a/servers/mariaDB.sh +++ b/servers/mariaDB.sh @@ -63,7 +63,7 @@ mariadb_postconfiguracion() { brew services start mariadb mysql_install_db mysql_upgrade - #sudo mariadb-secure-installation + sudo mariadb-secure-installation echo -e "$VE Estableciendo character-set-server = utf8mb4$CL" sudo sed -r -i'' "s/^\s*#?\s*character-set-server\s*=.*/character-set-server = utf8mb4/" "$FILE_CONF"