getopt — передать значение по умолчанию, если аргумент не указан

Вот способ добиться этого, который подходит для частной среды разработки, которая используется только для этой цели, но никогда не должен использоваться на машине, -маршрутизируемой через Интернет.

Выполните эти довольно радикальные команды:

# chown myuser:myser /usr/bin
# chown myuser:myser /usr/bin/php-cgi

, затем:

# chmod 711 /home/myuser
# chmod 755 /home/myuser/public_html
#

Кроме того, (повторно -)скомпилируйте Apache для установки suEXEC AP_DOC_ROOT="/"и (повторно -).

Измените /etc/httpd/conf/httpd.confв соответствии с этими строками:

ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
ServerAdmin root@localhost
#ServerName example.local
ServerName localhost    
User apache
Group apache
<Directory />
    AllowOverride none
    Require all granted
</Directory>
<VirtualHost *:80>
  DocumentRoot "/home/myuser/public_html/public"
  SuexecUserGroup myuser myuser
  <IfModule alias_module>
    ScriptAlias /cgi-bin/ /home/myuser/public_html/public/cgi-bin/
  </IfModule>
  <Directory "/home/myuser/public_html/public">
    Options Indexes FollowSymLinks ExecCGI
    AllowOverride None
    Require all granted
    AddHandler cgi-script.cgi.pl
  </Directory>
</VirtualHost>
<IfModule dir_module>
  DirectoryIndex index.php index.cgi index.html index.htm
</IfModule>

и изменить /etc/httpd/conf.d/php.confпримерно так:

ScriptAlias /local-bin /usr/bin
AddHandler application/x-httpd-php5 php
Action application/x-httpd-php5 /local-bin/php-cgi

Наконец, (re -)запустите Apache.

Это лучший подход, который я нашел до того, как задать вопрос выше. Однако почти наверняка есть лучшие альтернативы, и я хотел бы узнать о них, поэтому я задаю вопрос. (Например, установка двоичного файла php-cgiв домашнем каталоге пользователя в принципе должна быть жизнеспособной и менее радикальной мерой, чем изменение права собственности на системный двоичный файл и его каталог.)

Итак, пожалуйста, не стесняйтесь голосовать за этот ответ, если он вам помог, или конструктивно комментировать, если он вам не помог, но я пока не буду отмечать его как «правильный» в надежде, что появятся лучшие ответы..

-1
11.06.2020, 17:16
1 ответ

Вы не можете просто дать " -a" и оставить его без аргумента, вы просто не упоминаете " -a" вообще и внутри скрипта, если -опция не указана, вы можете назначить значение по умолчанию, как показано ниже:

if [[ -z $ALPHA ]]
then
ALPHA="defaultvalue"
fi
1
19.03.2021, 02:29

Теги

Похожие вопросы